# HG changeset patch # User Maxim Dounin # Date 1570560974 -10800 # Node ID 6208c5418c88ce8ecc656b40704a752cb7c7648a # Parent 79bcbe7cd3f239daca90ef1eaf3c4d1415525734 Fixed URI normalization with merge_slashes switched off. Previously, "/foo///../bar" was normalized into "/foo/bar" instead of "/foo//bar". diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c --- a/src/http/ngx_http_parse.c +++ b/src/http/ngx_http_parse.c @@ -1471,7 +1471,7 @@ ngx_http_parse_complex_uri(ngx_http_requ case '/': case '?': case '#': - u -= 5; + u -= 4; for ( ;; ) { if (u < r->uri.data) { return NGX_HTTP_PARSE_INVALID_REQUEST; @@ -1575,7 +1575,7 @@ ngx_http_parse_complex_uri(ngx_http_requ u--; } else if (state == sw_dot_dot) { - u -= 5; + u -= 4; for ( ;; ) { if (u < r->uri.data) {