diff --git a/Libraries/LibHTTP/HttpJob.cpp b/Libraries/LibHTTP/HttpJob.cpp index ae1165756b..8b1b0e8c9d 100644 --- a/Libraries/LibHTTP/HttpJob.cpp +++ b/Libraries/LibHTTP/HttpJob.cpp @@ -158,8 +158,11 @@ void HttpJob::on_socket_connected() auto content_length_header = m_headers.get("Content-Length"); if (content_length_header.has_value()) { bool ok; - if (m_received_size >= content_length_header.value().to_uint(ok) && ok) - return finish_up(); + auto content_length = content_length_header.value().to_uint(ok); + if (ok && m_received_size >= content_length) { + m_received_size = content_length; + finish_up(); + } } }; } diff --git a/Libraries/LibHTTP/HttpsJob.cpp b/Libraries/LibHTTP/HttpsJob.cpp index 412be193ce..c35575d025 100644 --- a/Libraries/LibHTTP/HttpsJob.cpp +++ b/Libraries/LibHTTP/HttpsJob.cpp @@ -168,8 +168,11 @@ void HttpsJob::on_socket_connected() auto content_length_header = m_headers.get("Content-Length"); if (content_length_header.has_value()) { bool ok; - if (m_received_size >= content_length_header.value().to_uint(ok) && ok) + auto content_length = content_length_header.value().to_uint(ok); + if (ok && m_received_size >= content_length) { + m_received_size = content_length; finish_up(); + } } else { // no content-length, assume closed connection finish_up();