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:26:20 +0000 (17:26 +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 628b65021671e5f09ab7616d04f195fc95e3a341..5cbf474774b89b0b8bd89a5cac18c6f779d29ab3 100644 (file)
@@ -358,6 +358,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;
 }