From: Matt Caswell <matt@openssl.org>
Date: Tue, 10 Nov 2015 23:12:36 +0000 (+0000)
Subject: Remove an NULL ptr deref in an error path
X-Git-Tag: OpenSSL_1_1_0-pre1~271
X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=d73ca3efa74bbb620a1e74deb5eec6f3d10203d5;p=openssl

Remove an NULL ptr deref in an error path

The |passwd| variable in the code can be NULL if it goes to the err label.
Therefore we cannot call strlen on it without first checking that it is non
NULL.

Reviewed-by: Kurt Roeckx <kurt@openssl.org>
---

diff --git a/ssl/tls_srp.c b/ssl/tls_srp.c
index 91b88cd11f..64a3f23df7 100644
--- a/ssl/tls_srp.c
+++ b/ssl/tls_srp.c
@@ -393,7 +393,8 @@ int srp_generate_client_master_secret(SSL *s)
  err:
     BN_clear_free(K);
     BN_clear_free(x);
-    OPENSSL_clear_free(passwd, strlen(passwd));
+    if (passwd != NULL)
+        OPENSSL_clear_free(passwd, strlen(passwd));
     BN_clear_free(u);
     return ret;
 }