merge 2411:
handle "/../" case more reliably
Igor Sysoev
12 years ago
1122 | 1122 | #endif |
1123 | 1123 | case '/': |
1124 | 1124 | state = sw_slash; |
1125 | u -= 4; | |
1126 | if (u < r->uri.data) { | |
1127 | return NGX_HTTP_PARSE_INVALID_REQUEST; | |
1128 | } | |
1129 | while (*(u - 1) != '/') { | |
1125 | u -= 5; | |
1126 | for ( ;; ) { | |
1127 | if (u < r->uri.data) { | |
1128 | return NGX_HTTP_PARSE_INVALID_REQUEST; | |
1129 | } | |
1130 | if (*u == '/') { | |
1131 | u++; | |
1132 | break; | |
1133 | } | |
1130 | 1134 | u--; |
1131 | 1135 | } |
1132 | 1136 | break; |