diff options
Diffstat (limited to 'src/zenhttp/servers/httpparser.cpp')
| -rw-r--r-- | src/zenhttp/servers/httpparser.cpp | 8 |
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; |