windows: use _strdup() instead of strdup() where missing

To replace deprecated `strdup()` CRT calls with the recommended
`_strdup()`.

Refs:
https://learn.microsoft.com/cpp/c-runtime-library/reference/strdup-wcsdup
https://learn.microsoft.com/cpp/c-runtime-library/reference/strdup-wcsdup-mbsdup

Closes #19794
This commit is contained in:
Viktor Szakats 2025-12-01 19:49:50 +01:00
parent a3fcd80de4
commit 5356bce6ab
No known key found for this signature in database
GPG key ID: B5ABD165E2AEF201
5 changed files with 14 additions and 8 deletions

View file

@ -38,12 +38,6 @@ int main(void)
}
#else
#ifdef _MSC_VER
#ifndef _CRT_NONSTDC_NO_DEPRECATE
#define _CRT_NONSTDC_NO_DEPRECATE /* for strdup() */
#endif
#endif
#ifdef _WIN32
#if !defined(_WIN32_WINNT) || _WIN32_WINNT < 0x0600
#undef _WIN32_WINNT
@ -52,6 +46,7 @@ int main(void)
#include <winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#define strdup _strdup
#else
#include <sys/types.h>
#include <sys/socket.h>

View file

@ -91,8 +91,7 @@
#pragma warning(disable:4127)
/* Avoid VS2005 and upper complaining about portable C functions. */
#ifndef _CRT_NONSTDC_NO_DEPRECATE /* mingw-w64 v2+. MS SDK ~10+/~VS2017+. */
#define _CRT_NONSTDC_NO_DEPRECATE /* for close(), fileno(), strdup(),
unlink(), etc. */
#define _CRT_NONSTDC_NO_DEPRECATE /* for close(), fileno(), unlink(), etc. */
#endif
#ifndef _CRT_SECURE_NO_WARNINGS
#define _CRT_SECURE_NO_WARNINGS /* for getenv(), gmtime(), strcpy(),

View file

@ -103,7 +103,11 @@ static curl_simple_lock s_lock = CURL_SIMPLE_LOCK_INIT;
* so the callback pointer is initialized correctly.
*/
#ifdef HAVE_STRDUP
#ifdef _WIN32
#define system_strdup _strdup
#else
#define system_strdup strdup
#endif
#else
#define system_strdup Curl_strdup
#endif

View file

@ -36,7 +36,11 @@
curl_malloc_callback Curl_cmalloc = (curl_malloc_callback)malloc;
curl_free_callback Curl_cfree = (curl_free_callback)free;
curl_realloc_callback Curl_crealloc = (curl_realloc_callback)realloc;
#ifdef _WIN32
curl_strdup_callback Curl_cstrdup = (curl_strdup_callback)_strdup;
#else
curl_strdup_callback Curl_cstrdup = (curl_strdup_callback)strdup;
#endif
curl_calloc_callback Curl_ccalloc = (curl_calloc_callback)calloc;
#if defined(_MSC_VER) && defined(_DLL)

View file

@ -69,6 +69,10 @@ extern const struct entry_s s_entries[];
# define snprintf _snprintf
#endif
#ifdef _WIN32
# define strdup _strdup
#endif
#ifdef _WIN32
# define CURL_STRNICMP(p1, p2, n) _strnicmp(p1, p2, n)
#elif defined(HAVE_STRCASECMP)