From 457fc4306e70d85f5858314a0282d4a921e27d0c Mon Sep 17 00:00:00 2001 From: yhirose Date: Fri, 29 Nov 2024 20:46:48 -0500 Subject: [PATCH] Fix #1993 --- httplib.h | 13 +++++++------ 1 file changed, 7 insertions(+), 6 deletions(-) diff --git a/httplib.h b/httplib.h index b4f89d6..6ec2d76 100644 --- a/httplib.h +++ b/httplib.h @@ -7983,9 +7983,7 @@ inline bool ClientImpl::process_request(Stream &strm, Request &req, : static_cast( [&](const char *buf, size_t n, uint64_t /*off*/, uint64_t /*len*/) { - if (res.body.size() + n > res.body.max_size()) { - return false; - } + assert(res.body.size() + n <= res.body.max_size()); res.body.append(buf, n); return true; }); @@ -7999,9 +7997,12 @@ inline bool ClientImpl::process_request(Stream &strm, Request &req, if (res.has_header("Content-Length")) { if (!req.content_receiver) { - auto len = std::min(res.get_header_value_u64("Content-Length"), - res.body.max_size()); - if (len > 0) { res.body.reserve(len); } + auto len = res.get_header_value_u64("Content-Length"); + if (len > res.body.max_size()) { + error = Error::Read; + return false; + } + res.body.reserve(len); } }