From 9b701fc4aa77dbafa0072cf80b72a1db56763977 Mon Sep 17 00:00:00 2001 From: Devon Kirk Date: Sat, 20 Jun 2026 19:11:37 -0400 Subject: [PATCH] input/curl: guard content length --- src/input/plugins/CurlInputPlugin.cxx | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/input/plugins/CurlInputPlugin.cxx b/src/input/plugins/CurlInputPlugin.cxx index 207712a692..085a714f27 100644 --- a/src/input/plugins/CurlInputPlugin.cxx +++ b/src/input/plugins/CurlInputPlugin.cxx @@ -281,8 +281,15 @@ CurlInputStream::OnHeaders(unsigned status, seekable = true; auto i = headers.find("content-length"); - if (i != headers.end()) - size = offset + ParseUint64(i->second.c_str()); + if (i != headers.end()) { + char *endptr; + auto content_length = ParseUint64(i->second.c_str(), &endptr); + if (endptr > i->second.c_str() && *endptr == 0 && + content_length < UNKNOWN_SIZE - offset) + size = offset + content_length; + else + size = UNKNOWN_SIZE; + } i = headers.find("content-type"); if (i != headers.end())