# HG changeset patch # User Igor Sysoev # Date 1252324994 0 # Node ID 9ec5a0857fcd3800a93846243fb5e1d2906dcab3 # Parent 088a340003f4825b6f803d2c56fc51e4bfac7773 merge r3092: handle "/../" case more reliably 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 @@ -1123,11 +1123,15 @@ ngx_http_parse_complex_uri(ngx_http_requ #endif case '/': state = sw_slash; - u -= 4; - if (u < r->uri.data) { - return NGX_HTTP_PARSE_INVALID_REQUEST; - } - while (*(u - 1) != '/') { + u -= 5; + for ( ;; ) { + if (u < r->uri.data) { + return NGX_HTTP_PARSE_INVALID_REQUEST; + } + if (*u == '/') { + u++; + break; + } u--; } break;