Mercurial > hg > nginx
comparison src/http/ngx_http_parse.c @ 3121:bd2573c97e4a
handle "/../" case more reliably
author | Igor Sysoev <igor@sysoev.ru> |
---|---|
date | Mon, 14 Sep 2009 07:42:01 +0000 |
parents | 566eeb81e807 |
children | d430c6ab1c99 |
comparison
equal
deleted
inserted
replaced
3120:40b8b398dbbc | 3121:bd2573c97e4a |
---|---|
1132 #if (NGX_WIN32) | 1132 #if (NGX_WIN32) |
1133 case '\\': | 1133 case '\\': |
1134 #endif | 1134 #endif |
1135 case '/': | 1135 case '/': |
1136 state = sw_slash; | 1136 state = sw_slash; |
1137 u -= 4; | 1137 u -= 5; |
1138 if (u < r->uri.data) { | 1138 for ( ;; ) { |
1139 return NGX_HTTP_PARSE_INVALID_REQUEST; | 1139 if (u < r->uri.data) { |
1140 } | 1140 return NGX_HTTP_PARSE_INVALID_REQUEST; |
1141 while (*(u - 1) != '/') { | 1141 } |
1142 if (*u == '/') { | |
1143 u++; | |
1144 break; | |
1145 } | |
1142 u--; | 1146 u--; |
1143 } | 1147 } |
1144 break; | 1148 break; |
1145 case '%': | 1149 case '%': |
1146 quoted_state = state; | 1150 quoted_state = state; |