mhd_str.c: fixed logic when built without 'inline'

This commit is contained in:
Evgeny Grin (Karlson2k)
2024-06-15 12:59:24 +02:00
parent 861d252ed5
commit d15de502ef
+22 -11
View File
@@ -1722,15 +1722,18 @@ MHD_hex_to_bin (const char *hex,
if (0 != len % 2) if (0 != len % 2)
{ {
/* Assume the first byte is encoded with single digit */ /* Assume the first byte is encoded with single digit */
const int l = toxdigitvalue (hex[r++]); const char c2 = hex[r++];
const int l = toxdigitvalue (c2);
if (0 > l) if (0 > l)
return 0; return 0;
out[w++] = (uint8_t) ((unsigned int) l); out[w++] = (uint8_t) ((unsigned int) l);
} }
while (r < len) while (r < len)
{ {
const int h = toxdigitvalue (hex[r++]); const char c1 = hex[r++];
const int l = toxdigitvalue (hex[r++]); const char c2 = hex[r++];
const int h = toxdigitvalue (c1);
const int l = toxdigitvalue (c2);
if ((0 > h) || (0 > l)) if ((0 > h) || (0 > l))
return 0; return 0;
out[w++] = (uint8_t) ( ((uint8_t) (((uint8_t) ((unsigned int) h)) << 4)) out[w++] = (uint8_t) ( ((uint8_t) (((uint8_t) ((unsigned int) h)) << 4))
@@ -1774,8 +1777,10 @@ MHD_str_pct_decode_strict_n_ (const char *pct_encoded,
return 0; return 0;
else else
{ {
const int h = toxdigitvalue (pct_encoded[++r]); const char c1 = pct_encoded[++r];
const int l = toxdigitvalue (pct_encoded[++r]); const char c2 = pct_encoded[++r];
const int h = toxdigitvalue (c1);
const int l = toxdigitvalue (c2);
unsigned char out; unsigned char out;
if ((0 > h) || (0 > l)) if ((0 > h) || (0 > l))
return 0; return 0;
@@ -1804,8 +1809,10 @@ MHD_str_pct_decode_strict_n_ (const char *pct_encoded,
return 0; return 0;
else else
{ {
const int h = toxdigitvalue (pct_encoded[++r]); const char c1 = pct_encoded[++r];
const int l = toxdigitvalue (pct_encoded[++r]); const char c2 = pct_encoded[++r];
const int h = toxdigitvalue (c1);
const int l = toxdigitvalue (c2);
unsigned char out; unsigned char out;
if ((0 > h) || (0 > l)) if ((0 > h) || (0 > l))
return 0; return 0;
@@ -1854,8 +1861,10 @@ MHD_str_pct_decode_lenient_n_ (const char *pct_encoded,
} }
else else
{ {
const int h = toxdigitvalue (pct_encoded[++r]); const char c1 = pct_encoded[++r];
const int l = toxdigitvalue (pct_encoded[++r]); const char c2 = pct_encoded[++r];
const int h = toxdigitvalue (c1);
const int l = toxdigitvalue (c2);
unsigned char out; unsigned char out;
if ((0 > h) || (0 > l)) if ((0 > h) || (0 > l))
{ {
@@ -1896,8 +1905,10 @@ MHD_str_pct_decode_lenient_n_ (const char *pct_encoded,
} }
else else
{ {
const int h = toxdigitvalue (pct_encoded[++r]); const char c1 = pct_encoded[++r];
const int l = toxdigitvalue (pct_encoded[++r]); const char c2 = pct_encoded[++r];
const int h = toxdigitvalue (c1);
const int l = toxdigitvalue (c2);
if ((0 > h) || (0 > l)) if ((0 > h) || (0 > l))
{ {
r -= 2; r -= 2;