diff options
author | Igor Sysoev <igor@sysoev.ru> | 2007-07-22 19:18:59 +0000 |
---|---|---|
committer | Igor Sysoev <igor@sysoev.ru> | 2007-07-22 19:18:59 +0000 |
commit | 3f70782404db989cf60ff9e77171ed2d689db900 (patch) | |
tree | 44288abe7481a68ccb473fb25721fb49a192ffda /src/core/ngx_string.c | |
parent | 37ae8ca0e12ffc8cfc02986806a8a27e71c207b0 (diff) | |
download | nginx-3f70782404db989cf60ff9e77171ed2d689db900.tar.gz nginx-3f70782404db989cf60ff9e77171ed2d689db900.zip |
escape space, etc in $memcached_key
Diffstat (limited to 'src/core/ngx_string.c')
-rw-r--r-- | src/core/ngx_string.c | 22 |
1 files changed, 21 insertions, 1 deletions
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c index 6a927b03b..a07dbebeb 100644 --- a/src/core/ngx_string.c +++ b/src/core/ngx_string.c @@ -1059,7 +1059,27 @@ 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 */ }; - static uint32_t *map[] = { uri, args, html, refresh }; + /* " ", %00-%1F */ + + static uint32_t memcached[] = { + 0xffffffff, /* 1111 1111 1111 1111 1111 1111 1111 1111 */ + + /* ?>=< ;:98 7654 3210 /.-, +*)( '&%$ #"! */ + 0x00000001, /* 0000 0000 0000 0000 0000 0000 0000 0001 */ + + /* _^]\ [ZYX WVUT SRQP ONML KJIH GFED CBA@ */ + 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ + + /* ~}| {zyx wvut srqp onml kjih gfed cba` */ + 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 */ + 0x00000000, /* 0000 0000 0000 0000 0000 0000 0000 0000 */ + }; + + static uint32_t *map[] = { uri, args, html, refresh, memcached }; escape = map[type]; |