diff --git a/parser.c b/parser.c index 9587455..4606a98 100644 --- a/parser.c +++ b/parser.c @@ -1233,13 +1233,13 @@ htparser_run(htparser * p, htparse_hooks * hooks, const char * data, size_t len) do { log_debug("[%p] s_check_uri", p); - if (usual[ch >> 5] & (1 << (ch & 0x1f))) { - HTP_SET_BUF(ch); - } else { + if (evhtp_unlikely(i + 1 >= len)) { break; } - if (evhtp_unlikely(i + 1 >= len)) { + if (usual[ch >> 5] & (1 << (ch & 0x1f))) { + HTP_SET_BUF(ch); + } else { break; } @@ -1317,13 +1317,13 @@ htparser_run(htparser * p, htparse_hooks * hooks, const char * data, size_t len) res = 0; do { - if (usual[ch >> 5] & (1 << (ch & 0x1f))) { - HTP_SET_BUF(ch); - } else { + if (evhtp_unlikely(i + 1 >= len)) { break; } - if (evhtp_unlikely(i + 1 >= len)) { + if (usual[ch >> 5] & (1 << (ch & 0x1f))) { + HTP_SET_BUF(ch); + } else { break; }