strdup: remove the memchr check from Curl_strndup

It makes it possible to clone a binary chunk of data.

Closes #12453
This commit is contained in:
Daniel Stenberg 2023-12-05 15:55:35 +01:00
parent c0dd06ecb3
commit 63cdaefbc3
No known key found for this signature in database
GPG Key ID: 5CC908FDB71E12C2

View File

@ -104,18 +104,14 @@ void *Curl_memdup(const void *src, size_t length)
* Curl_strndup(source, length)
*
* Copies the 'source' string to a newly allocated buffer (that is returned).
* Copies not more than 'length' bytes (up to a null terminator) then adds a
* null terminator.
* Copies 'length' bytes then adds a null terminator.
*
* Returns the new pointer or NULL on failure.
*
***************************************************************************/
void *Curl_strndup(const char *src, size_t length)
{
char *buf = memchr(src, '\0', length);
if(buf)
length = buf - src;
buf = malloc(length + 1);
char *buf = malloc(length + 1);
if(!buf)
return NULL;
memcpy(buf, src, length);