]> git.ipfire.org Git - thirdparty/strongswan.git/commitdiff
windows: Provide a strdup variant safe when passing zero-length strings
authorMartin Willi <martin@revosec.ch>
Thu, 17 Oct 2013 14:23:43 +0000 (16:23 +0200)
committerMartin Willi <martin@revosec.ch>
Wed, 4 Jun 2014 13:53:00 +0000 (15:53 +0200)
src/libstrongswan/utils/windows.h

index 8c009cabbfe4a7e93216e157cbb5caed8e4fcfa2..90c92fd60a3bf3da646c0cb87dbdb7e4d4ac190a 100644 (file)
@@ -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
  */