aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2019-12-27 11:56:49 +0100
committerLoïc Hoguin <[email protected]>2019-12-27 11:56:49 +0100
commit61dbb6d2189264083173929edfaa19c2c7af8184 (patch)
tree60ab941662d8c3e8ffb4a010ac81df393c88be63
parentbbc343c1399dd9d3e8468adc9a41b8529e748280 (diff)
downloadcowlib-61dbb6d2189264083173929edfaa19c2c7af8184.tar.gz
cowlib-61dbb6d2189264083173929edfaa19c2c7af8184.tar.bz2
cowlib-61dbb6d2189264083173929edfaa19c2c7af8184.zip
HPACK decode: don't try to drop entries when increasing size
-rw-r--r--src/cow_hpack.erl5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/cow_hpack.erl b/src/cow_hpack.erl
index 7db69b0..ea0ddd6 100644
--- a/src/cow_hpack.erl
+++ b/src/cow_hpack.erl
@@ -1349,8 +1349,9 @@ table_resize([Entry = {EntrySize, _}|Tail], MaxSize, Size, Acc) ->
table_update_size(0, State) ->
State#state{size=0, max_size=0, dyn_table=[]};
-table_update_size(MaxSize, State=#state{max_size=MaxSize}) ->
- State;
+table_update_size(MaxSize, State=#state{max_size=CurrentMaxSize})
+ when CurrentMaxSize =< MaxSize ->
+ State#state{max_size=MaxSize};
table_update_size(MaxSize, State=#state{dyn_table=DynTable}) ->
{DynTable2, Size} = table_resize(DynTable, MaxSize, 0, []),
State#state{size=Size, max_size=MaxSize, dyn_table=DynTable2}.