GH620: second diff from rt-2275, adds error code
[openssl.git] / crypto / o_str.c
index 269d60614ba269334e563ee8aa829810ff3d6028..b200060917f4cbe780339f1a4bf2eac7a245527a 100644 (file)
@@ -120,12 +120,14 @@ int OPENSSL_memcmp(const void *v1, const void *v2, size_t n)
 char *CRYPTO_strdup(const char *str, const char* file, int line)
 {
     char *ret;
+    size_t size;
 
     if (str == NULL)
         return NULL;
-    ret = CRYPTO_malloc(strlen(str) + 1, file, line);
+    size = strlen(str) + 1;
+    ret = CRYPTO_malloc(size, file, line);
     if (ret != NULL)
-        strcpy(ret, str);
+        memcpy(ret, str, size);
     return ret;
 }