From 827f04d5105e9bec0af214c42b8ad799fba5bb0d Mon Sep 17 00:00:00 2001 From: Richard Levitte Date: Fri, 15 May 2020 07:50:43 +0200 Subject: [PATCH 1/1] CORE: Fix a couple of bugs in algorithm_do_this() The call of ossl_provider_query_operation() used |data->operation_id|, when |cur_operation| should be used. If any ossl_provider_query_operation() call returned NULL, the loop was stopped, when it should just continue on to the next operation. Reviewed-by: Matt Caswell (Merged from https://github.com/openssl/openssl/pull/11837) --- crypto/core_algorithm.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/crypto/core_algorithm.c b/crypto/core_algorithm.c index 2973b37604..79625fdea6 100644 --- a/crypto/core_algorithm.c +++ b/crypto/core_algorithm.c @@ -37,11 +37,11 @@ static int algorithm_do_this(OSSL_PROVIDER *provider, void *cbdata) cur_operation <= last_operation; cur_operation++) { const OSSL_ALGORITHM *map = - ossl_provider_query_operation(provider, data->operation_id, + ossl_provider_query_operation(provider, cur_operation, &no_store); if (map == NULL) - break; + continue; ok = 1; /* As long as we've found *something* */ while (map->algorithm_names != NULL) { -- 2.34.1