diff src/core/ngx_string.c @ 138:8e6d4d96ec4c NGINX_0_3_16

nginx 0.3.16 *) Feature: the ngx_http_map_module. *) Feature: the "types_hash_max_size" and "types_hash_bucket_size" directives. *) Feature: the "ssi_value_length" directive. *) Feature: the "worker_rlimit_core" directive. *) Workaround: the connection number in logs was always 1 if nginx was built by the icc 8.1 or 9.0 compilers with optimization for Pentium 4. *) Bugfix: the "config timefmt" SSI command set incorrect time format. *) Bugfix: nginx did not close connection to IMAP/POP3 backend for the SSL connections; bug appeared in 0.3.13. Thanks to Rob Mueller. *) Bugfix: segmentation fault may occurred in at SSL shutdown; bug appeared in 0.3.13.
author Igor Sysoev <http://sysoev.ru>
date Fri, 16 Dec 2005 00:00:00 +0300
parents 91372f004adf
children 50bd986c5d63
line wrap: on
line diff
--- a/src/core/ngx_string.c
+++ b/src/core/ngx_string.c
@@ -980,20 +980,21 @@ ngx_unescape_uri(u_char **dst, u_char **
                 break;
             }
 
-            /* skip the invalid quoted character */
+            /* the invalid quoted character */
 
-            s++;
-            size--;
+            state = sw_usual;
+
+            *d++ = ch;
 
             break;
 
         case sw_quoted_second:
 
+            state = sw_usual;
+
             if (ch >= '0' && ch <= '9') {
                 ch = (u_char) ((decoded << 4) + ch - '0');
 
-                state = sw_usual;
-
                 if (ch > '%' && ch < 0x7f) {
                     *d++ = ch;
                     break;
@@ -1013,8 +1014,6 @@ ngx_unescape_uri(u_char **dst, u_char **
                     goto done;
                 }
 
-                state = sw_usual;
-
                 if (ch > '%' && ch < 0x7f) {
                     *d++ = ch;
                     break;
@@ -1025,7 +1024,7 @@ ngx_unescape_uri(u_char **dst, u_char **
                 break;
             }
 
-            /* skip the invalid quoted character */
+            /* the invalid quoted character */
 
             break;
         }