Mercurial > hg > nginx
changeset 3090:1ecd37f610c0 stable-0.7
merge r2991:
do not test "..." case since it's Win9x family feature only
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 07 Sep 2009 09:25:59 +0000 |
parents | 3391f0dad64e |
children | ecc8d537e9a9 |
files | src/http/ngx_http_parse.c |
diffstat | 1 files changed, 0 insertions(+), 72 deletions(-) [+] |
line wrap: on
line diff
--- a/src/http/ngx_http_parse.c Mon Sep 07 09:18:55 2009 +0000 +++ b/src/http/ngx_http_parse.c Mon Sep 07 09:25:59 2009 +0000 @@ -950,9 +950,6 @@ sw_slash, sw_dot, sw_dot_dot, -#if (NGX_WIN32) - sw_dot_dot_dot, -#endif sw_quoted, sw_quoted_second } state, quoted_state; @@ -1154,12 +1151,6 @@ goto args; case '#': goto done; -#if (NGX_WIN32) - case '.': - state = sw_dot_dot_dot; - *u++ = ch; - break; -#endif case '+': r->plus_in_uri = 1; default: @@ -1171,55 +1162,6 @@ ch = *p++; break; -#if (NGX_WIN32) - case sw_dot_dot_dot: - - if (usual[ch >> 5] & (1 << (ch & 0x1f))) { - state = sw_usual; - *u++ = ch; - ch = *p++; - break; - } - - switch(ch) { - case '\\': - case '/': - state = sw_slash; - u -= 5; - if (u < r->uri.data) { - return NGX_HTTP_PARSE_INVALID_REQUEST; - } - while (*u != '/') { - u--; - } - if (u == r->uri.data) { - return NGX_HTTP_PARSE_INVALID_REQUEST; - } - while (*(u - 1) != '/') { - u--; - } - break; - case '%': - quoted_state = state; - state = sw_quoted; - break; - case '?': - r->args_start = p; - goto args; - case '#': - goto done; - case '+': - r->plus_in_uri = 1; - default: - state = sw_usual; - *u++ = ch; - break; - } - - ch = *p++; - break; -#endif - case sw_quoted: r->quoted_uri = 1; @@ -1369,20 +1311,6 @@ if (p[0] == '.' && p[1] == '.' && ngx_path_separator(p[2])) { goto unsafe; } - -#if (NGX_WIN32) - - if (len > 3) { - - /* detect "/.../" */ - - if (p[0] == '.' && p[1] == '.' && p[2] == '.' - && ngx_path_separator(p[3])) - { - goto unsafe; - } - } -#endif } }