summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorValentin Bartenev <vbart@nginx.com>2018-07-03 15:18:16 +0300
committerValentin Bartenev <vbart@nginx.com>2018-07-03 15:18:16 +0300
commit11cecce11401a0c8990279406de3894c036c73a7 (patch)
tree700434ed6d637f538636b53a792055b70756ac10
parent0366bfad6de29d5b40894233f6c5be7d08118826 (diff)
downloadunit-11cecce11401a0c8990279406de3894c036c73a7.tar.gz
unit-11cecce11401a0c8990279406de3894c036c73a7.tar.bz2
HTTP parser: relaxed checking of fields values.
Allowing characters up to 0xFF doesn't conflict with RFC 7230. Particularly, this make it possible to pass unencoded UTF-8 data through HTTP headers, which can be useful.
Diffstat (limited to '')
-rw-r--r--src/nxt_http_parse.c3
-rw-r--r--src/test/nxt_http_parse_test.c2
2 files changed, 2 insertions, 3 deletions
diff --git a/src/nxt_http_parse.c b/src/nxt_http_parse.c
index b9325c57..34eaaaf9 100644
--- a/src/nxt_http_parse.c
+++ b/src/nxt_http_parse.c
@@ -699,8 +699,7 @@ nxt_http_lookup_field_end(u_char *p, u_char *end)
#define nxt_field_end_test_char(ch) \
\
- /* Values below 0x20 become more than 0xDF. */ \
- if (nxt_slow_path((u_char) ((ch) - 0x20) > 0x5E)) { \
+ if (nxt_slow_path((ch) < 0x20)) { \
return &(ch); \
}
diff --git a/src/test/nxt_http_parse_test.c b/src/test/nxt_http_parse_test.c
index a23f27c3..572e91b2 100644
--- a/src/test/nxt_http_parse_test.c
+++ b/src/test/nxt_http_parse_test.c
@@ -301,7 +301,7 @@ static nxt_http_parse_test_case_t nxt_http_test_cases[] = {
{
nxt_string("GET / HTTP/1.1\r\n"
"Host: пример.испытание\r\n\r\n"),
- NXT_HTTP_PARSE_INVALID,
+ NXT_DONE,
NULL, { NULL }
},
{