diff options
author | Matt Caswell <matt@openssl.org> | 2022-06-06 10:32:49 +0100 |
---|---|---|
committer | Matt Caswell <matt@openssl.org> | 2022-06-08 15:43:44 +0100 |
commit | 7d6aad832b4cebb181c53ab80a3f61dc8549be08 (patch) | |
tree | 139a3dc9efba5a964a7e4266acd9729c24587db5 /providers | |
parent | ae4d9573ac783dcf26279f461d42d0e261e978f7 (diff) |
Don't report success from ec_export if OSSL_PARAM_BLD_to_param failed
If the call to OSSL_PARAM_BLD_to_param() failed then ec_export was
reporting success, even though it has never called the param_cb.
Found due to:
https://github.com/openssl/openssl/pull/18355#issuecomment-1145993650
Reviewed-by: Tomas Mraz <tomas@openssl.org>
Reviewed-by: Paul Dale <pauli@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/18483)
Diffstat (limited to 'providers')
-rw-r--r-- | providers/implementations/keymgmt/ec_kmgmt.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/providers/implementations/keymgmt/ec_kmgmt.c b/providers/implementations/keymgmt/ec_kmgmt.c index e120760e5f..6f8638a898 100644 --- a/providers/implementations/keymgmt/ec_kmgmt.c +++ b/providers/implementations/keymgmt/ec_kmgmt.c @@ -498,6 +498,8 @@ int ec_export(void *keydata, int selection, OSSL_CALLBACK *param_cb, if (ok && (params = OSSL_PARAM_BLD_to_param(tmpl)) != NULL) ok = param_cb(params, cbarg); + else + ok = 0; end: OSSL_PARAM_free(params); OSSL_PARAM_BLD_free(tmpl); |