nginx-0.3.16-RELEASE import
*) 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; the bug had appeared in 0.3.13.
Thanks to Rob Mueller.
*) Bugfix: segmentation fault may occurred in at SSL shutdown; the bug
had appeared in 0.3.13.
diff --git a/src/core/ngx_string.c b/src/core/ngx_string.c
index f042d7c..2bb335a 100644
--- a/src/core/ngx_string.c
+++ b/src/core/ngx_string.c
@@ -980,20 +980,21 @@
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 @@
goto done;
}
- state = sw_usual;
-
if (ch > '%' && ch < 0x7f) {
*d++ = ch;
break;
@@ -1025,7 +1024,7 @@
break;
}
- /* skip the invalid quoted character */
+ /* the invalid quoted character */
break;
}