Skip to content

Commit 733ec51

Browse files
committed
fix: catch insert() throw for invalid response header names
1 parent 2c40df6 commit 733ec51

1 file changed

Lines changed: 8 additions & 1 deletion

File tree

libs/server-sent-events/src/curl_client.cpp

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,14 @@ size_t CurlClient::HeaderCallback(char const* buffer,
494494
}
495495
// insert() preserves duplicate-name headers (Set-Cookie, Via, …);
496496
// set() would collapse them and diverge from the Foxy backend.
497-
context->current_response.insert(std::string(name), std::string(value));
497+
try {
498+
context->current_response.insert(std::string(name),
499+
std::string(value));
500+
} catch (std::exception const&) {
501+
// insert() throws if the name isn't a valid RFC 7230 token.
502+
context->log_message("ignoring response header with invalid name");
503+
return total_size;
504+
}
498505

499506
if (beast::iequals(name, "Content-Type") &&
500507
value.find("text/event-stream") == std::string_view::npos) {

0 commit comments

Comments
 (0)