From: Daniel Stenberg Date: Thu, 4 Dec 2025 15:20:25 +0000 (+0100) Subject: bufref: rename *memdup() to *memdup0() X-Git-Tag: rc-8_18_0-1~24 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=1def38003299bf0fbbaf8b5ed34422205166d085;p=thirdparty%2Fcurl.git bufref: rename *memdup() to *memdup0() To make it clearer to readers of the code that the resulting dup also has a null terminator. Something a "normal" memdup() does not provide. Closes #19833 --- diff --git a/docs/internals/BUFREF.md b/docs/internals/BUFREF.md index 686a092aec..cd101f08a9 100644 --- a/docs/internals/BUFREF.md +++ b/docs/internals/BUFREF.md @@ -54,10 +54,11 @@ specified as `NULL`: this is the case when the referenced buffer is static. if `buffer` is NULL, `length` must be zero. -## `memdup` +## `memdup0` ```c -CURLcode Curl_bufref_memdup(struct bufref *br, const void *data, size_t length); +CURLcode Curl_bufref_memdup0(struct bufref *br, const void *data, + size_t length); ``` Releases the previously referenced buffer, then duplicates the `length`-byte diff --git a/lib/bufref.c b/lib/bufref.c index 8dcd3592db..8f52d48d20 100644 --- a/lib/bufref.c +++ b/lib/bufref.c @@ -117,7 +117,7 @@ size_t Curl_bufref_len(const struct bufref *br) return br->len; } -CURLcode Curl_bufref_memdup(struct bufref *br, const void *ptr, size_t len) +CURLcode Curl_bufref_memdup0(struct bufref *br, const void *ptr, size_t len) { unsigned char *cpy = NULL; diff --git a/lib/bufref.h b/lib/bufref.h index b8ffe38347..abf1d617df 100644 --- a/lib/bufref.h +++ b/lib/bufref.h @@ -42,7 +42,7 @@ void Curl_bufref_set(struct bufref *br, const void *ptr, size_t len, const char *Curl_bufref_ptr(const struct bufref *br); const unsigned char *Curl_bufref_uptr(const struct bufref *br); size_t Curl_bufref_len(const struct bufref *br); -CURLcode Curl_bufref_memdup(struct bufref *br, const void *ptr, size_t len); +CURLcode Curl_bufref_memdup0(struct bufref *br, const void *ptr, size_t len); void Curl_bufref_free(struct bufref *br); #endif diff --git a/lib/formdata.c b/lib/formdata.c index 880f804dc6..d5f6776a3d 100644 --- a/lib/formdata.c +++ b/lib/formdata.c @@ -132,7 +132,7 @@ static CURLcode FormInfoCopyField(struct bufref *field, size_t len) if(value) { if(!len) len = strlen(value); - result = Curl_bufref_memdup(field, value, len); + result = Curl_bufref_memdup0(field, value, len); } return result; @@ -260,7 +260,7 @@ static CURLFORMcode FormAddCheck(struct FormInfo *first_form, type = FILE_CONTENTTYPE_DEFAULT; /* our contenttype is missing */ - if(Curl_bufref_memdup(&form->contenttype, type, strlen(type))) + if(Curl_bufref_memdup0(&form->contenttype, type, strlen(type))) return CURL_FORMADD_MEMORY; } if(name && form->namelength) { @@ -427,7 +427,7 @@ static CURLFORMcode FormAdd(struct curl_httppost **httppost, else { avalue = form_ptr_arg(char *); if(avalue) { - if(Curl_bufref_memdup(&curr->value, avalue, strlen(avalue))) + if(Curl_bufref_memdup0(&curr->value, avalue, strlen(avalue))) retval = CURL_FORMADD_MEMORY; else curr->flags |= HTTPPOST_READFILE; @@ -445,7 +445,7 @@ static CURLFORMcode FormAdd(struct curl_httppost **httppost, if(avalue) { form = NewFormInfo(); if(!form || - Curl_bufref_memdup(&form->value, avalue, strlen(avalue))) { + Curl_bufref_memdup0(&form->value, avalue, strlen(avalue))) { curlx_free(form); retval = CURL_FORMADD_MEMORY; } @@ -463,7 +463,7 @@ static CURLFORMcode FormAdd(struct curl_httppost **httppost, } else { if(avalue) { - if(Curl_bufref_memdup(&curr->value, avalue, strlen(avalue))) + if(Curl_bufref_memdup0(&curr->value, avalue, strlen(avalue))) retval = CURL_FORMADD_MEMORY; else curr->flags |= HTTPPOST_FILENAME; @@ -520,7 +520,7 @@ static CURLFORMcode FormAdd(struct curl_httppost **httppost, if(curr->flags & HTTPPOST_FILENAME) { if(avalue) { form = NewFormInfo(); - if(!form || Curl_bufref_memdup(&form->contenttype, avalue, + if(!form || Curl_bufref_memdup0(&form->contenttype, avalue, strlen(avalue))) { curlx_free(form); retval = CURL_FORMADD_MEMORY; @@ -538,7 +538,7 @@ static CURLFORMcode FormAdd(struct curl_httppost **httppost, retval = CURL_FORMADD_OPTION_TWICE; } else if(avalue) { - if(Curl_bufref_memdup(&curr->contenttype, avalue, strlen(avalue))) + if(Curl_bufref_memdup0(&curr->contenttype, avalue, strlen(avalue))) retval = CURL_FORMADD_MEMORY; } else @@ -562,7 +562,7 @@ static CURLFORMcode FormAdd(struct curl_httppost **httppost, avalue = form_ptr_arg(char *); if(Curl_bufref_ptr(&curr->showfilename)) retval = CURL_FORMADD_OPTION_TWICE; - else if(Curl_bufref_memdup(&curr->showfilename, avalue, strlen(avalue))) + else if(Curl_bufref_memdup0(&curr->showfilename, avalue, strlen(avalue))) retval = CURL_FORMADD_MEMORY; break; diff --git a/lib/vauth/krb5_gssapi.c b/lib/vauth/krb5_gssapi.c index 7ba21a3941..0c069c70d6 100644 --- a/lib/vauth/krb5_gssapi.c +++ b/lib/vauth/krb5_gssapi.c @@ -154,7 +154,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct Curl_easy *data, } if(output_token.value && output_token.length) { - result = Curl_bufref_memdup(out, output_token.value, output_token.length); + result = Curl_bufref_memdup0(out, output_token.value, output_token.length); gss_release_buffer(&unused_status, &output_token); } else @@ -285,7 +285,7 @@ CURLcode Curl_auth_create_gssapi_security_message(struct Curl_easy *data, } /* Return the response. */ - result = Curl_bufref_memdup(out, output_token.value, output_token.length); + result = Curl_bufref_memdup0(out, output_token.value, output_token.length); /* Free the output buffer */ gss_release_buffer(&unused_status, &output_token); diff --git a/lib/vauth/krb5_sspi.c b/lib/vauth/krb5_sspi.c index 21636d59ee..32fa44cfcb 100644 --- a/lib/vauth/krb5_sspi.c +++ b/lib/vauth/krb5_sspi.c @@ -212,7 +212,7 @@ CURLcode Curl_auth_create_gssapi_user_message(struct Curl_easy *data, } if(resp_buf.cbBuffer) { - result = Curl_bufref_memdup(out, resp_buf.pvBuffer, resp_buf.cbBuffer); + result = Curl_bufref_memdup0(out, resp_buf.pvBuffer, resp_buf.cbBuffer); } else if(mutual_auth) Curl_bufref_set(out, "", 0, NULL); diff --git a/lib/vauth/ntlm.c b/lib/vauth/ntlm.c index 7fd13d8745..70d080f5a4 100644 --- a/lib/vauth/ntlm.c +++ b/lib/vauth/ntlm.c @@ -831,7 +831,7 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data, size += hostlen; /* Return the binary blob. */ - result = Curl_bufref_memdup(out, ntlmbuf, size); + result = Curl_bufref_memdup0(out, ntlmbuf, size); error: curlx_free(ntlmv2resp); /* Free the dynamic buffer allocated for NTLMv2 */ diff --git a/lib/vauth/ntlm_sspi.c b/lib/vauth/ntlm_sspi.c index e4aad6e24f..dae7248f73 100644 --- a/lib/vauth/ntlm_sspi.c +++ b/lib/vauth/ntlm_sspi.c @@ -316,7 +316,7 @@ CURLcode Curl_auth_create_ntlm_type3_message(struct Curl_easy *data, } /* Return the response. */ - result = Curl_bufref_memdup(out, ntlm->output_token, type_3_buf.cbBuffer); + result = Curl_bufref_memdup0(out, ntlm->output_token, type_3_buf.cbBuffer); Curl_auth_cleanup_ntlm(ntlm); return result; } diff --git a/tests/unit/unit1661.c b/tests/unit/unit1661.c index 569b06760b..7f8d1aa76a 100644 --- a/tests/unit/unit1661.c +++ b/tests/unit/unit1661.c @@ -87,9 +87,9 @@ static CURLcode test_unit1661(const char *arg) fail_unless(Curl_bufref_len(&bufref) == 13, "Wrong data size returned"); /** - * testing Curl_bufref_memdup + * testing Curl_bufref_memdup0 */ - res = Curl_bufref_memdup(&bufref, "1661", 3); + res = Curl_bufref_memdup0(&bufref, "1661", 3); abort_unless(res == CURLE_OK, curl_easy_strerror(res)); fail_unless(freecount == 1, "Destructor not called"); fail_unless((const char *)bufref.ptr != buffer, "Returned pointer not set");