Mercurial > hg > nginx
comparison src/http/ngx_http_parse.c @ 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 |
comparison
equal
deleted
inserted
replaced
3107:088a340003f4 | 3108:9ec5a0857fcd |
---|---|
1121 #if (NGX_WIN32) | 1121 #if (NGX_WIN32) |
1122 case '\\': | 1122 case '\\': |
1123 #endif | 1123 #endif |
1124 case '/': | 1124 case '/': |
1125 state = sw_slash; | 1125 state = sw_slash; |
1126 u -= 4; | 1126 u -= 5; |
1127 if (u < r->uri.data) { | 1127 for ( ;; ) { |
1128 return NGX_HTTP_PARSE_INVALID_REQUEST; | 1128 if (u < r->uri.data) { |
1129 } | 1129 return NGX_HTTP_PARSE_INVALID_REQUEST; |
1130 while (*(u - 1) != '/') { | 1130 } |
1131 if (*u == '/') { | |
1132 u++; | |
1133 break; | |
1134 } | |
1131 u--; | 1135 u--; |
1132 } | 1136 } |
1133 break; | 1137 break; |
1134 case '%': | 1138 case '%': |
1135 quoted_state = state; | 1139 quoted_state = state; |