From 507a9beca1bf70f60d0cf1e2095ae81e5200dbe1 Mon Sep 17 00:00:00 2001 From: Fabio Alessandrelli Date: Mon, 31 May 2021 15:42:31 +0200 Subject: [PATCH] [Net] Fix HTTPRquest store_buffer error. HTTPRquest no longer call store_buffer/append_array when the chunk size is 0. --- scene/main/http_request.cpp | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/scene/main/http_request.cpp b/scene/main/http_request.cpp index 884696d58df..927b114fbc2 100644 --- a/scene/main/http_request.cpp +++ b/scene/main/http_request.cpp @@ -375,17 +375,19 @@ bool HTTPRequest::_update_connection() { } PackedByteArray chunk = client->read_response_body_chunk(); - downloaded.add(chunk.size()); - if (file) { - const uint8_t *r = chunk.ptr(); - file->store_buffer(r, chunk.size()); - if (file->get_error() != OK) { - call_deferred("_request_done", RESULT_DOWNLOAD_FILE_WRITE_ERROR, response_code, response_headers, PackedByteArray()); - return true; + if (chunk.size()) { + downloaded.add(chunk.size()); + if (file) { + const uint8_t *r = chunk.ptr(); + file->store_buffer(r, chunk.size()); + if (file->get_error() != OK) { + call_deferred("_request_done", RESULT_DOWNLOAD_FILE_WRITE_ERROR, response_code, response_headers, PackedByteArray()); + return true; + } + } else { + body.append_array(chunk); } - } else { - body.append_array(chunk); } if (body_size_limit >= 0 && downloaded.get() > body_size_limit) {