SRP_create_verifier does not check for NULL before OPENSSL_cleanse
authorMatt Caswell <matt@openssl.org>
Fri, 26 Aug 2016 14:14:24 +0000 (15:14 +0100)
committerMatt Caswell <matt@openssl.org>
Fri, 26 Aug 2016 19:40:37 +0000 (20:40 +0100)
OPENSSL_cleanse() does not validate its input parameter for NULL so
SRP_create_verifier() should do so instead. Otherwise a segfault will
result.

Alternative solution to GitHub PR#1006

Reviewed-by: Rich Salz <rsalz@openssl.org>
crypto/srp/srp_vfy.c

index 986babfd493cc03242e071391179836b5b2e0d4a..af557a1ac3fb31c2a99c935728c17b1c976d7383 100644 (file)
@@ -635,7 +635,8 @@ char *SRP_create_verifier(const char *user, const char *pass, char **salt,
         BN_free(N_bn);
         BN_free(g_bn);
     }
-    OPENSSL_cleanse(vf, vfsize);
+    if (vf != NULL)
+        OPENSSL_cleanse(vf, vfsize);
     OPENSSL_free(vf);
     BN_clear_free(s);
     BN_clear_free(v);