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:20:38 +0000 (17:20 +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 2ce3e894877df151a93743d138dd7dffbd5c65be..fdad49b76ec00a9cdf33234b2127e52cbf6c96e5 100644 (file)
@@ -365,6 +365,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;
 }