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;