diff options
author | Igor Sysoev <igor@sysoev.ru> | 2005-06-07 15:56:31 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2005-06-07 15:56:31 +0000 |
commit | 7b190b41b0d9885e523f3efd9efcbf94b6abe961 (patch) | |
tree | 4a5e4edda3e4a287a4343e341df38b9c7495ee82 /src/core/ngx_string.c | |
parent | 3c8b02a267b310fb0926ee3c63196f976720e113 (diff) | |
download | nginx-7b190b41b0d9885e523f3efd9efcbf94b6abe961.tar.gz nginx-7b190b41b0d9885e523f3efd9efcbf94b6abe961.zip |
nginx-0.1.35-RELEASE importrelease-0.1.35
*) Feature: the "working_directory" directive.
*) Feature: the "port_in_redirect" directive.
*) Bugfix: the segmentation fault was occurred if the backend response
header was in several packets; the bug had appeared in 0.1.29.
*) Bugfix: if more than 10 servers were configured or some server did
not use the "listen" directive, then the segmentation fault was
occurred on the start.
*) Bugfix: the segmentation fault might occur if the response was
bigger than the temporary file.
*) Bugfix: nginx returned the 400 response on requests like
"GET http://www.domain.com/uri HTTP/1.0"; the bug had appeared in
0.1.28.
Diffstat (limited to 'src/core/ngx_string.c')
-rw-r--r-- | src/core/ngx_string.c | 22 |
1 files changed, 22 insertions, 0 deletions
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c index 0307bb1cd..acc4bd302 100644 --- a/src/core/ngx_string.c +++ b/src/core/ngx_string.c @@ -792,8 +792,30 @@ ngx_escape_uri(u_char *dst, u_char *src, size_t size, ngx_uint_t type) 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ 0xffffffff /* 1111 1111 1111 1111 1111 1111 1111 1111 */ }; + /* " ", """, "%", "'", %00-%1F, %7F-%FF */ + + static uint32_t utf[] = + { 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ + + /* ?>=< ;:98 7654 3210 /.-, +*)( '&%$ #"! */ + 0x800000ad, /* 0000 0000 0000 0000 0000 0000 1010 1101 */ + + /* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */ + 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ + + /* ~}| {zyx wvut srqp onml kjih gfed cba` */ + 0x80000000, /* 1000 0000 0000 0000 0000 0000 0000 0000 */ + + 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ + 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ + 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ + 0x00000000 /* 0000 0000 0000 0000 0000 0000 0000 0000 */ }; + switch (type) { + case NGX_ESCAPE_UTF: + escape = utf; + break; case NGX_ESCAPE_HTML: escape = html; break; |