]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Fix segfault on missing provider_query_operation()
authorNicola Tuveri <nic.tuv@gmail.com>
Fri, 2 Oct 2020 00:58:10 +0000 (03:58 +0300)
committerNicola Tuveri <nic.tuv@gmail.com>
Sat, 3 Oct 2020 11:38:22 +0000 (14:38 +0300)
A provider without `provider_query_operation()` is admittedly quite
useless, yet technically the base provider functions are not mandatory
according to our documentation.

Reviewed-by: Tomas Mraz <tmraz@fedoraproject.org>
Reviewed-by: Paul Dale <paul.dale@oracle.com>
(Merged from https://github.com/openssl/openssl/pull/13058)

crypto/provider_core.c

index 754f6df1a497343d3425c84691f24cad684e2cb8..742d3e2b503f667bd446463d296254fc61c3b8c4 100644 (file)
@@ -866,7 +866,8 @@ const OSSL_ALGORITHM *ossl_provider_query_operation(const OSSL_PROVIDER *prov,
                                                     int operation_id,
                                                     int *no_cache)
 {
-    return prov->query_operation(prov->provctx, operation_id, no_cache);
+    return prov->query_operation == NULL
+        ? NULL : prov->query_operation(prov->provctx, operation_id, no_cache);
 }
 
 int ossl_provider_set_operation_bit(OSSL_PROVIDER *provider, size_t bitnum)