Loading CHANGES +0 −3 Original line number Diff line number Diff line Loading @@ -5,9 +5,6 @@ Changes with Apache 2.4.26 *) core: EBCDIC fixes for interim responses with additional headers. [Eric Covener] *) core: ap_parse_form_data() URL-decoding doesn't work on EBCDIC platforms. PR61124. [Hank Ibell <hwibell gmail.com>] *) Evaluate nested If/ElseIf/Else configuration blocks. [Luca Toscano, Jacob Champion] Loading server/util.c +22 −4 Original line number Diff line number Diff line Loading @@ -2666,7 +2666,8 @@ AP_DECLARE(int) ap_parse_form_data(request_rec *r, ap_filter_t *f, ap_form_pair_t *pair = NULL; apr_array_header_t *pairs = apr_array_make(r->pool, 4, sizeof(ap_form_pair_t)); char escaped_char[2]; char hi = 0; char low = 0; *ptr = pairs; Loading Loading @@ -2733,13 +2734,30 @@ AP_DECLARE(int) ap_parse_form_data(request_rec *r, ap_filter_t *f, continue; } if (FORM_PERCENTA == percent) { escaped_char[0] = c; if (c >= 'a') { hi = c - 'a' + 10; } else if (c >= 'A') { hi = c - 'A' + 10; } else if (c >= '0') { hi = c - '0'; } hi = hi << 4; percent = FORM_PERCENTB; continue; } if (FORM_PERCENTB == percent) { escaped_char[1] = c; c = x2c(escaped_char); if (c >= 'a') { low = c - 'a' + 10; } else if (c >= 'A') { low = c - 'A' + 10; } else if (c >= '0') { low = c - '0'; } c = low | hi; percent = FORM_NORMAL; } switch (state) { Loading Loading
CHANGES +0 −3 Original line number Diff line number Diff line Loading @@ -5,9 +5,6 @@ Changes with Apache 2.4.26 *) core: EBCDIC fixes for interim responses with additional headers. [Eric Covener] *) core: ap_parse_form_data() URL-decoding doesn't work on EBCDIC platforms. PR61124. [Hank Ibell <hwibell gmail.com>] *) Evaluate nested If/ElseIf/Else configuration blocks. [Luca Toscano, Jacob Champion] Loading
server/util.c +22 −4 Original line number Diff line number Diff line Loading @@ -2666,7 +2666,8 @@ AP_DECLARE(int) ap_parse_form_data(request_rec *r, ap_filter_t *f, ap_form_pair_t *pair = NULL; apr_array_header_t *pairs = apr_array_make(r->pool, 4, sizeof(ap_form_pair_t)); char escaped_char[2]; char hi = 0; char low = 0; *ptr = pairs; Loading Loading @@ -2733,13 +2734,30 @@ AP_DECLARE(int) ap_parse_form_data(request_rec *r, ap_filter_t *f, continue; } if (FORM_PERCENTA == percent) { escaped_char[0] = c; if (c >= 'a') { hi = c - 'a' + 10; } else if (c >= 'A') { hi = c - 'A' + 10; } else if (c >= '0') { hi = c - '0'; } hi = hi << 4; percent = FORM_PERCENTB; continue; } if (FORM_PERCENTB == percent) { escaped_char[1] = c; c = x2c(escaped_char); if (c >= 'a') { low = c - 'a' + 10; } else if (c >= 'A') { low = c - 'A' + 10; } else if (c >= '0') { low = c - '0'; } c = low | hi; percent = FORM_NORMAL; } switch (state) { Loading