Fix CRYPTO_strdup
authorLoganaden Velvindron <loganaden@gmail.com>
Wed, 22 Apr 2015 15:16:30 +0000 (16:16 +0100)
committerMatt Caswell <matt@openssl.org>
Wed, 22 Apr 2015 16:18:59 +0000 (17:18 +0100)
The function CRYPTO_strdup (aka OPENSSL_strdup) fails to check the return
value from CRYPTO_malloc to see if it is NULL before attempting to use it.
This patch adds a NULL check.

RT3786

Signed-off-by: Matt Caswell <matt@openssl.org>
(cherry picked from commit 37b0cf936744d9edb99b5dd82cae78a7eac6ad60)

Reviewed-by: Rich Salz <rsalz@openssl.org>
(cherry picked from commit 20d21389c8b6f5b754573ffb6a4dc4f3986f2ca4)

crypto/mem.c

index d05936211cc5c43efa0633269bfa71d44f6c6491..2251d57fb3adbf283199d371f26c5da8e7ade7c2 100644 (file)
@@ -364,6 +364,9 @@ char *CRYPTO_strdup(const char *str, const char *file, int line)
 {
     char *ret = CRYPTO_malloc(strlen(str) + 1, file, line);
 
+    if (ret == NULL)
+        return NULL;
+
     strcpy(ret, str);
     return ret;
 }