diff options
| author | Brad King <brad.king@kitware.com> | 2023-12-12 01:33:07 (GMT) |
|---|---|---|
| committer | Brad King <brad.king@kitware.com> | 2023-12-12 01:33:07 (GMT) |
| commit | 548f0cfd1db2f6a4b971df94a0a47655b51ff9d9 (patch) | |
| tree | bbba54962c79e662d7d04986e113f50efd39654e /Utilities/cmcurl/lib/strdup.c | |
| parent | 38f85b839019c0674e9f8abae141e7b087f44c16 (diff) | |
| parent | fe5ffe06a9e09b7be5ff432049cb427894a78dcb (diff) | |
| download | CMake-548f0cfd1db2f6a4b971df94a0a47655b51ff9d9.zip CMake-548f0cfd1db2f6a4b971df94a0a47655b51ff9d9.tar.gz CMake-548f0cfd1db2f6a4b971df94a0a47655b51ff9d9.tar.bz2 | |
Merge branch 'upstream-curl' into update-curl
* upstream-curl:
curl 2023-12-06 (7161cb17)
Diffstat (limited to 'Utilities/cmcurl/lib/strdup.c')
| -rw-r--r-- | Utilities/cmcurl/lib/strdup.c | 28 |
1 files changed, 26 insertions, 2 deletions
diff --git a/Utilities/cmcurl/lib/strdup.c b/Utilities/cmcurl/lib/strdup.c index 07a6139..2578441 100644 --- a/Utilities/cmcurl/lib/strdup.c +++ b/Utilities/cmcurl/lib/strdup.c @@ -26,7 +26,7 @@ #include <curl/curl.h> -#ifdef WIN32 +#ifdef _WIN32 #include <wchar.h> #endif @@ -56,7 +56,7 @@ char *Curl_strdup(const char *str) } #endif -#ifdef WIN32 +#ifdef _WIN32 /*************************************************************************** * * Curl_wcsdup(source) @@ -101,6 +101,30 @@ 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. + * + * 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); + if(!buf) + return NULL; + memcpy(buf, src, length); + buf[length] = 0; + return buf; +} + +/*************************************************************************** + * * Curl_saferealloc(ptr, size) * * Does a normal realloc(), but will free the data pointer if the realloc |
