From d869054318d2289d92b2f306cfa2335d2be22091 Mon Sep 17 00:00:00 2001 From: Jiwoo Park Date: Fri, 18 Oct 2024 23:16:48 +0900 Subject: [PATCH] Allow empty header values (#1965) --- httplib.h | 2 +- test/test.cc | 9 +++++++++ 2 files changed, 10 insertions(+), 1 deletion(-) diff --git a/httplib.h b/httplib.h index 72bd2b6..56af8f6 100644 --- a/httplib.h +++ b/httplib.h @@ -4115,7 +4115,7 @@ inline bool parse_header(const char *beg, const char *end, T fn) { p++; } - if (p < end) { + if (p <= end) { auto key_len = key_end - beg; if (!key_len) { return false; } diff --git a/test/test.cc b/test/test.cc index 0cd450e..612304b 100644 --- a/test/test.cc +++ b/test/test.cc @@ -4922,6 +4922,15 @@ TEST(ServerRequestParsingTest, InvalidFieldValueContains_CR_LF_NUL) { EXPECT_EQ("HTTP/1.1 400 Bad Request", out.substr(0, 24)); } +TEST(ServerRequestParsingTest, EmptyFieldValue) { + std::string out; + + test_raw_request("GET /header_field_value_check HTTP/1.1\r\n" + "Test: \r\n\r\n", + &out); + EXPECT_EQ("HTTP/1.1 200 OK", out.substr(0, 15)); +} + TEST(ServerStopTest, StopServerWithChunkedTransmission) { Server svr;