libmicrohttpd2

HTTP server C library (MHD 2.x, alpha)
Log | Files | Refs | README | LICENSE

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:
Msrc/mhd2/h2/hpack/mhd_hpack_codec.c | 8++++++++
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))