From a506b922f32bc925a9aaeda88c39eba16141211e Mon Sep 17 00:00:00 2001 From: Martin Willi Date: Thu, 17 Oct 2013 16:23:43 +0200 Subject: [PATCH] windows: Provide a strdup variant safe when passing zero-length strings --- src/libstrongswan/utils/windows.h | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/libstrongswan/utils/windows.h b/src/libstrongswan/utils/windows.h index 8c009cabbf..90c92fd60a 100644 --- a/src/libstrongswan/utils/windows.h +++ b/src/libstrongswan/utils/windows.h @@ -67,6 +67,21 @@ static inline void srandom(unsigned int seed) srand(seed); } +/** + * strdup(3), the Windows variant can't free(strdup("")) and others + */ +#define strdup strdup_windows +static inline char* strdup_windows(const char *src) +{ + size_t len; + char *dst; + + len = strlen(src) + 1; + dst = malloc(len); + memcpy(dst, src, len); + return dst; +} + /** * Provided via ws2_32 */ -- 2.47.2