From 6e417f951c64f4643cdc62c370badf46d5fe485e Mon Sep 17 00:00:00 2001 From: Shane Lontis Date: Thu, 10 Sep 2020 17:22:40 +1000 Subject: [PATCH] Fix coverity issue: CID 1466485 - Explicit NULL dereference in OSSL_STORE_find() Reviewed-by: Tomas Mraz (Merged from https://github.com/openssl/openssl/pull/12847) --- crypto/store/store_lib.c | 4 ++++ test/ossl_store_test.c | 9 +++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/crypto/store/store_lib.c b/crypto/store/store_lib.c index 98e49d826d4..8cf051818c2 100644 --- a/crypto/store/store_lib.c +++ b/crypto/store/store_lib.c @@ -272,6 +272,10 @@ int OSSL_STORE_find(OSSL_STORE_CTX *ctx, const OSSL_STORE_SEARCH *search) ERR_raise(ERR_LIB_OSSL_STORE, OSSL_STORE_R_LOADING_STARTED); return 0; } + if (search == NULL) { + ERR_raise(ERR_LIB_OSSL_STORE, ERR_R_PASSED_NULL_PARAMETER); + return 0; + } if (ctx->fetched_loader != NULL) { OSSL_PARAM_BLD *bld; diff --git a/test/ossl_store_test.c b/test/ossl_store_test.c index cbae150099e..9b488279832 100644 --- a/test/ossl_store_test.c +++ b/test/ossl_store_test.c @@ -24,13 +24,18 @@ static int test_store_open(void) { int ret = 0; OSSL_STORE_CTX *sctx = NULL; + OSSL_STORE_SEARCH *search = NULL; UI_METHOD *ui_method = NULL; - ret = TEST_ptr(ui_method= UI_create_method("DummyUI")) + ret = TEST_ptr(search = OSSL_STORE_SEARCH_by_alias("nothing")) + && TEST_ptr(ui_method= UI_create_method("DummyUI")) && TEST_ptr(sctx = OSSL_STORE_open_with_libctx(infile, NULL, NULL, ui_method, NULL, - NULL, NULL)); + NULL, NULL)) + && TEST_false(OSSL_STORE_find(sctx, NULL)) + && TEST_true(OSSL_STORE_find(sctx, search)); UI_destroy_method(ui_method); + OSSL_STORE_SEARCH_free(search); OSSL_STORE_close(sctx); return ret; } -- 2.47.3