This patch add check in evhttp_decode_uri_internal() that next 2 symbols
are exists in array of chars for decoding, if don't have two next 2
symbols don't try to decode '%FF'
decode_plus = 1;
} else if (c == '+' && decode_plus) {
c = ' ';
- } else if (c == '%' && EVUTIL_ISXDIGIT_(uri[i+1]) &&
- EVUTIL_ISXDIGIT_(uri[i+2])) {
+ } else if (length > 2 && i < (length - 2) && c == '%' &&
+ EVUTIL_ISXDIGIT_(uri[i+1]) && EVUTIL_ISXDIGIT_(uri[i+2])) {
char tmp[3];
tmp[0] = uri[i+1];
tmp[1] = uri[i+2];