aboutsummaryrefslogtreecommitdiff
path: root/src/zenhttp/servers/httpparser.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/zenhttp/servers/httpparser.cpp')
-rw-r--r--src/zenhttp/servers/httpparser.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/zenhttp/servers/httpparser.cpp b/src/zenhttp/servers/httpparser.cpp
index c64134c95..0a1c5686a 100644
--- a/src/zenhttp/servers/httpparser.cpp
+++ b/src/zenhttp/servers/httpparser.cpp
@@ -124,6 +124,13 @@ void
HttpRequestParser::AppendCurrentHeader()
{
std::string_view HeaderName(m_CurrentHeaderName, m_CurrentHeaderNameLength);
+ if (m_Headers.size() == std::numeric_limits<int8_t>::max())
+ {
+ ZEN_WARN("HttpRequestParser parser only supports up to {} headers, can't store header '{}'. Dropping it.",
+ std::numeric_limits<int8_t>::max(),
+ HeaderName);
+ return;
+ }
std::string_view HeaderValue(m_CurrentHeaderValue, m_CurrentHeaderValueLength);
const uint32_t HeaderHash = HashStringAsLowerDjb2(HeaderName);
@@ -335,7 +342,6 @@ HttpRequestParser::ResetState()
m_CurrentHeaderNameLength = 0;
m_CurrentHeaderValue = nullptr;
m_CurrentHeaderValueLength = 0;
- m_CurrentHeaderName = nullptr;
m_Url = nullptr;
m_UrlLength = 0;
m_QueryString = nullptr;