Fix a possible NULL pointer dereference in create_cert_store()
authorZhou Qingyang <zhou1615@umn.edu>
Wed, 6 Apr 2022 16:48:09 +0000 (00:48 +0800)
committerTomas Mraz <tomas@openssl.org>
Thu, 21 Apr 2022 06:34:09 +0000 (08:34 +0200)
In create_cert_store(), X509_STORE_new() is called and there is a
dereference of it in following function X509_STORE_add_lookup()
without check, which could lead to NULL pointer dereference.

Fix this by adding a NULL check of X509_STORE_new()

Reviewed-by: Shane Lontis <shane.lontis@oracle.com>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18057)

apps/ts.c

index 2497c3b32a7c222d2059da382a441edf54d9068b..e4a7515f0c97871de8f0d9e942b447bfaf88c46f 100644 (file)
--- a/apps/ts.c
+++ b/apps/ts.c
@@ -980,6 +980,10 @@ static X509_STORE *create_cert_store(const char *CApath, const char *CAfile,
     const char *propq = app_get0_propq();
 
     cert_ctx = X509_STORE_new();
+    if (cert_ctx == NULL) {
+        BIO_printf(bio_err, "memory allocation failure\n");
+        return NULL;
+    }
     X509_STORE_set_verify_cb(cert_ctx, verify_cb);
     if (CApath != NULL) {
         lookup = X509_STORE_add_lookup(cert_ctx, X509_LOOKUP_hash_dir());