From: Daniel Stenberg Date: Sun, 7 Jan 2024 15:01:00 +0000 (+0100) Subject: mime: use memdup0 instead of malloc + memcpy X-Git-Tag: curl-8_6_0~121 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=8e0323b4b534807e0fa8cc83e316950831a5afef;p=thirdparty%2Fcurl.git mime: use memdup0 instead of malloc + memcpy Closes #12649 --- diff --git a/lib/mime.c b/lib/mime.c index 0966a0b5a1..d61cbeb829 100644 --- a/lib/mime.c +++ b/lib/mime.c @@ -30,6 +30,7 @@ #include "warnless.h" #include "urldata.h" #include "sendf.h" +#include "strdup.h" #if !defined(CURL_DISABLE_MIME) && (!defined(CURL_DISABLE_HTTP) || \ !defined(CURL_DISABLE_SMTP) || \ @@ -1370,27 +1371,22 @@ CURLcode curl_mime_filename(curl_mimepart *part, const char *filename) /* Set mime part content from memory data. */ CURLcode curl_mime_data(curl_mimepart *part, - const char *data, size_t datasize) + const char *ptr, size_t datasize) { if(!part) return CURLE_BAD_FUNCTION_ARGUMENT; cleanup_part_content(part); - if(data) { + if(ptr) { if(datasize == CURL_ZERO_TERMINATED) - datasize = strlen(data); + datasize = strlen(ptr); - part->data = malloc(datasize + 1); + part->data = Curl_memdup0(ptr, datasize); if(!part->data) return CURLE_OUT_OF_MEMORY; part->datasize = datasize; - - if(datasize) - memcpy(part->data, data, datasize); - part->data[datasize] = '\0'; /* Set a null terminator as sentinel. */ - part->readfunc = mime_mem_read; part->seekfunc = mime_mem_seek; part->freefunc = mime_mem_free;