aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLoïc Hoguin <[email protected]>2019-12-29 12:14:47 +0100
committerLoïc Hoguin <[email protected]>2019-12-29 12:14:47 +0100
commitcb5dda33d986680b2778cf7afaa502428234088b (patch)
tree137835b8681aceaea1ec2ca0728210278a783b83
parent0ee90079b02a611568cd53c230e5f4186e3bff04 (diff)
downloadcowlib-cb5dda33d986680b2778cf7afaa502428234088b.tar.gz
cowlib-cb5dda33d986680b2778cf7afaa502428234088b.tar.bz2
cowlib-cb5dda33d986680b2778cf7afaa502428234088b.zip
HPACK: Fix inline integer decodings
There's no shift to be done for the first value.
-rw-r--r--src/cow_hpack.erl6
1 files changed, 3 insertions, 3 deletions
diff --git a/src/cow_hpack.erl b/src/cow_hpack.erl
index 882e670..4c27a75 100644
--- a/src/cow_hpack.erl
+++ b/src/cow_hpack.erl
@@ -123,7 +123,7 @@ decode(<< 0:3, 1:1, Rest/bits >>, State, Acc) ->
%% We do the integer decoding inline where appropriate, falling
%% back to dec_big_int for larger values.
dec_indexed(<<2#1111111:7, 0:1, Int:7, Rest/bits>>, State, Acc) ->
- {Name, Value} = table_get(127 + Int bsl 7, State),
+ {Name, Value} = table_get(127 + Int, State),
decode(Rest, State, [{Name, Value}|Acc]);
dec_indexed(<<2#1111111:7, Rest0/bits>>, State, Acc) ->
{Index, Rest} = dec_big_int(Rest0, 127, 0),
@@ -142,7 +142,7 @@ dec_lit_index_new_name(Rest, State, Acc) ->
%% We do the integer decoding inline where appropriate, falling
%% back to dec_big_int for larger values.
dec_lit_index_indexed_name(<<2#111111:6, 0:1, Int:7, Rest/bits>>, State, Acc) ->
- Name = table_get_name(63 + Int bsl 7, State),
+ Name = table_get_name(63 + Int, State),
dec_lit_index(Rest, State, Acc, Name);
dec_lit_index_indexed_name(<<2#111111:6, Rest0/bits>>, State, Acc) ->
{Index, Rest} = dec_big_int(Rest0, 63, 0),
@@ -166,7 +166,7 @@ dec_lit_no_index_new_name(Rest, State, Acc) ->
%% We do the integer decoding inline where appropriate, falling
%% back to dec_big_int for larger values.
dec_lit_no_index_indexed_name(<<2#1111:4, 0:1, Int:7, Rest/bits>>, State, Acc) ->
- Name = table_get_name(15 + Int bsl 7, State),
+ Name = table_get_name(15 + Int, State),
dec_lit_no_index(Rest, State, Acc, Name);
dec_lit_no_index_indexed_name(<<2#1111:4, Rest0/bits>>, State, Acc) ->
{Index, Rest} = dec_big_int(Rest0, 15, 0),