BUG/MINOR: h1-htx: Fix a signess bug with char data type when parsing chunk size
On some platform, a char may be unsigned. Of course, we should not rely on
the signess of a char to be portable. Unfortunatly, since the commit
a835f3cb ("MINOR: h1-htx: Use a correlation table to speed-up small chunks
parsing") we rely on it to test the value retrieved from the hexadecimal
correlation table when the size of a chunk is parsed.
To fix the bug, we now test the result is in the range [0,15] with a bitwise
AND.
This patch should fix the issue #1272. It is 2.5-specific, no backport is
needed except if the commit above is backported.
diff --git a/src/h1_htx.c b/src/h1_htx.c
index b4c49c7..878c45d 100644
--- a/src/h1_htx.c
+++ b/src/h1_htx.c
@@ -612,7 +612,7 @@
c = hextable[(unsigned char)end[ridx]];
/* not a hex digit anymore */
- if (c < 0)
+ if (c & 0xF0)
break;
/* Update current chunk size */