if (ch >= '0' && ch <= '9') {
ch = (u_char) ((decoded << 4) + ch - '0');
- if (ch == '%') {
+ if (ch == '%' || ch == '#') {
state = sw_usual;
*u++ = ch;
ch = *p++;
break;
- }
-
- if (ch == '#') {
- *u++ = ch;
- ch = *p++;
} else if (ch == '\0') {
return NGX_HTTP_PARSE_INVALID_REQUEST;
ch = (u_char) ((decoded << 4) + c - 'a' + 10);
if (ch == '?') {
+ state = sw_usual;
*u++ = ch;
ch = *p++;
+ break;
} else if (ch == '+') {
r->plus_in_uri = 1;