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;