summaryrefslogtreecommitdiffstats
path: root/usr.sbin/nginx/src/http/ngx_http_parse.c
diff options
context:
space:
mode:
authorrobert <robert@openbsd.org>2012-06-13 07:33:36 +0000
committerrobert <robert@openbsd.org>2012-06-13 07:33:36 +0000
commitf8651fdfd59d64d4df8a74209c79b837a5a89d2d (patch)
treeea72468b2c27bd735047e19dd4c21cc97f9af1db /usr.sbin/nginx/src/http/ngx_http_parse.c
parentRemove duplicate description of FORK_TFORK (diff)
downloadwireguard-openbsd-f8651fdfd59d64d4df8a74209c79b837a5a89d2d.tar.xz
wireguard-openbsd-f8651fdfd59d64d4df8a74209c79b837a5a89d2d.zip
update to 1.2.1
Diffstat (limited to 'usr.sbin/nginx/src/http/ngx_http_parse.c')
-rw-r--r--usr.sbin/nginx/src/http/ngx_http_parse.c20
1 files changed, 20 insertions, 0 deletions
diff --git a/usr.sbin/nginx/src/http/ngx_http_parse.c b/usr.sbin/nginx/src/http/ngx_http_parse.c
index 0a10a340ed9..be750edd084 100644
--- a/usr.sbin/nginx/src/http/ngx_http_parse.c
+++ b/usr.sbin/nginx/src/http/ngx_http_parse.c
@@ -543,6 +543,13 @@ ngx_http_parse_request_line(ngx_http_request_t *r, ngx_buf_t *b)
switch (ch) {
case '/':
+#if (NGX_WIN32)
+ if (r->uri_ext == p) {
+ r->complex_uri = 1;
+ state = sw_uri;
+ break;
+ }
+#endif
r->uri_ext = NULL;
state = sw_after_slash_in_uri;
break;
@@ -1117,6 +1124,12 @@ ngx_http_parse_complex_uri(ngx_http_request_t *r, ngx_uint_t merge_slashes)
switch(ch) {
#if (NGX_WIN32)
case '\\':
+ if (u - 2 >= r->uri.data
+ && *(u - 1) == '.' && *(u - 2) != '.')
+ {
+ u--;
+ }
+
r->uri_ext = NULL;
if (p == r->uri_start + r->uri.len) {
@@ -1134,6 +1147,13 @@ ngx_http_parse_complex_uri(ngx_http_request_t *r, ngx_uint_t merge_slashes)
break;
#endif
case '/':
+#if (NGX_WIN32)
+ if (u - 2 >= r->uri.data
+ && *(u - 1) == '.' && *(u - 2) != '.')
+ {
+ u--;
+ }
+#endif
r->uri_ext = NULL;
state = sw_slash;
*u++ = ch;