From 501caf05fe90d4631e5ef9291f2bba8aadd010c3 Mon Sep 17 00:00:00 2001 From: afshinpir Date: Wed, 28 Feb 2024 16:58:03 +1300 Subject: Adding missing NULL pointer check CLA: trivial In the provider store API, it is not necessary to provide both open and attach method at the same time and providing at least one of them is enough. Adding some null pointer checks to prevent exceptions in case of not providing both methods at the same time. Reviewed-by: Tom Cosgrove Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/23703) (cherry picked from commit bd73e1e62c4103e0faffb79cb3d34a2a92a95439) --- crypto/store/store_lib.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/crypto/store/store_lib.c b/crypto/store/store_lib.c index 05a8044f89..a801c28b9e 100644 --- a/crypto/store/store_lib.c +++ b/crypto/store/store_lib.c @@ -149,8 +149,8 @@ OSSL_STORE_open_ex(const char *uri, OSSL_LIB_CTX *libctx, const char *propq, ossl_pw_passphrase_callback_dec, &pwdata); } else { - loader_ctx = fetched_loader->p_open(provctx, uri); - if (loader_ctx != NULL && + if (fetched_loader->p_open != NULL && + (loader_ctx = fetched_loader->p_open(provctx, uri)) != NULL && !loader_set_params(fetched_loader, loader_ctx, params, propq)) { (void)fetched_loader->p_close(loader_ctx); @@ -1037,6 +1037,7 @@ OSSL_STORE_CTX *OSSL_STORE_attach(BIO *bp, const char *scheme, OSSL_CORE_BIO *cbio = ossl_core_bio_new_from_bio(bp); if (cbio == NULL + || fetched_loader->p_attach == NULL || (loader_ctx = fetched_loader->p_attach(provctx, cbio)) == NULL) { OSSL_STORE_LOADER_free(fetched_loader); fetched_loader = NULL; -- cgit v1.2.3