summaryrefslogtreecommitdiffstats
path: root/crypto/core_algorithm.c
diff options
context:
space:
mode:
authorRichard Levitte <levitte@openssl.org>2020-05-15 07:50:43 +0200
committerRichard Levitte <levitte@openssl.org>2020-05-16 12:08:32 +0200
commit827f04d5105e9bec0af214c42b8ad799fba5bb0d (patch)
treea67f85d9a3c92e3d0d7be9a1af7ba42a1bf37772 /crypto/core_algorithm.c
parent0b2b0be948404cefe7160c9b1096bc554e982f03 (diff)
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 <matt@openssl.org> (Merged from https://github.com/openssl/openssl/pull/11837)
Diffstat (limited to 'crypto/core_algorithm.c')
-rw-r--r--crypto/core_algorithm.c4
1 files 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) {