summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--crypto/store/store_lib.c5
1 files 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;