aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/http/ngx_http_parse.c12
1 files changed, 12 insertions, 0 deletions
diff --git a/src/http/ngx_http_parse.c b/src/http/ngx_http_parse.c
index dd97433ed..5dc0bc3bd 100644
--- a/src/http/ngx_http_parse.c
+++ b/src/http/ngx_http_parse.c
@@ -797,6 +797,12 @@ ngx_log_debug(r->connection->log, "S: %d UN: '%x:%c', URI: '%c'" _
case sw_quoted_second:
if (ch >= '0' && ch <= '9') {
ch = (decoded << 4) + ch - '0';
+ if (ch == '%') {
+ state = sw_usual;
+ *u++ = ch;
+ ch = *p++;
+ break;
+ }
state = quoted_state;
break;
}
@@ -804,6 +810,12 @@ ngx_log_debug(r->connection->log, "S: %d UN: '%x:%c', URI: '%c'" _
c = ch | 0x20;
if (c >= 'a' && c <= 'f') {
ch = (decoded << 4) + c - 'a' + 10;
+ if (ch == '%') {
+ state = sw_usual;
+ *u++ = ch;
+ ch = *p++;
+ break;
+ }
state = quoted_state;
break;
}