From 4c00b671698d8d93d900a4fe8c03986874cdc57a Mon Sep 17 00:00:00 2001 From: Steveice10 Date: Tue, 1 Jan 2019 10:01:54 -0800 Subject: [PATCH] Fix buffering of cURL download data. --- source/core/http.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/source/core/http.c b/source/core/http.c index 00514a7..d64ee62 100644 --- a/source/core/http.c +++ b/source/core/http.c @@ -312,13 +312,16 @@ static size_t http_curl_header_callback(char* buffer, size_t size, size_t nitems static size_t http_curl_write_callback(char* ptr, size_t size, size_t nmemb, void* userdata) { http_curl_data* curlData = (http_curl_data*) userdata; + size_t srcPos = 0; size_t available = size * nmemb; while(available > 0) { size_t remaining = curlData->bufferSize - curlData->pos; size_t copySize = available < remaining ? available : remaining; - memcpy((u8*) curlData->buf + curlData->pos, ptr, copySize); + memcpy((u8*) curlData->buf + curlData->pos, ptr + srcPos, copySize); curlData->pos += copySize; + + srcPos += copySize; available -= copySize; if(curlData->pos == curlData->bufferSize) {