commit bdd4bc41a358e408bc039c7320ff7dd605923b9a
parent d1c4761028ba759ad81544b065ee78a4b28c8d6c
Author: Evgeny Grin (Karlson2k) <k2k@drgrin.dev>
Date: Fri, 28 Aug 2026 15:52:46 +0200
HPACK: fixed wrong static table match
Diffstat:
1 file changed, 8 insertions(+), 0 deletions(-)
diff --git a/src/mhd2/h2/hpack/mhd_hpack_codec.c b/src/mhd2/h2/hpack/mhd_hpack_codec.c
@@ -4153,6 +4153,9 @@ mhd_stbl_find_entry_real (size_t name_len,
if (name_len != entry->name.len)
continue;
+ if (val_len != entry->value.len)
+ continue;
+
mhd_assert (0u != entry->name.len);
mhd_assert (0u != entry->value.len);
@@ -4204,11 +4207,16 @@ mhd_stbl_find_entry_real (size_t name_len,
for (i = mhd_HPACK_STBL_NORM_START_POS; i < mhd_HPACK_STBL_ENTRIES; ++i)
{
const struct mhd_HpackStaticEntry *const entry = stbl_pos_entry_info (i);
+
if (name_len != entry->name.len)
continue;
if (val_len != entry->value.len)
continue;
+
mhd_assert (0u != entry->name.len);
+ mhd_assert ((0u != entry->value.len) \
+ || (mhd_HPACK_STBL_NORM_WITH_VALUE_POS != i));
+
if (0 == memcmp (name,
entry->name.cstr,
name_len))