The payload of a SETTINGS frame is a multiple of six bytes, and the
frame decoder checks that. But the processing started only above six
bytes, so a client's first SETTINGS frame with exactly one setting was
acknowledged and otherwise ignored.
---
 src/mhd2/h2/h2_proc_settings.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/src/mhd2/h2/h2_proc_settings.c b/src/mhd2/h2/h2_proc_settings.c
index 6907331..ebcd976 100644
--- a/src/mhd2/h2/h2_proc_settings.c
+++ b/src/mhd2/h2/h2_proc_settings.c
@@ -107,7 +107,7 @@ mhd_h2_proc_first_settings (struct MHD_Connection
*restrict c,

   mhd_assert (h2_has_space_for_ack (c));

-  if (stngs_payload->size > 6u)
+  if (stngs_payload->size >= 6u)
   {
     size_t pos;

-- 
2.43.0

Reply via email to