Mercurial > hg > nginx
changeset 3108:9ec5a0857fcd stable-0.5
merge r3092:
handle "/../" case more reliably
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 07 Sep 2009 12:03:14 +0000 |
parents | 088a340003f4 |
children | 6dcc15f30295 |
files | src/http/ngx_http_parse.c |
diffstat | 1 files changed, 9 insertions(+), 5 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/ngx_http_parse.c Mon Sep 07 12:02:37 2009 +0000 +++ b/src/http/ngx_http_parse.c Mon Sep 07 12:03:14 2009 +0000 @@ -1123,11 +1123,15 @@ #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;