From: Peiwei Hu Date: Sat, 21 May 2022 07:27:04 +0000 (+0800) Subject: Fix the defective check of EVP_PKEY_get_params X-Git-Tag: openssl-3.2.0-alpha1~2613 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=7e5e91176b770a68bdaf73a5c647f1fc0d7f2900;p=thirdparty%2Fopenssl.git Fix the defective check of EVP_PKEY_get_params Reviewed-by: Tomas Mraz Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/18367) --- diff --git a/crypto/evp/p_lib.c b/crypto/evp/p_lib.c index a4ad904f773..46883255c6e 100644 --- a/crypto/evp/p_lib.c +++ b/crypto/evp/p_lib.c @@ -2343,10 +2343,10 @@ int EVP_PKEY_get_params(const EVP_PKEY *pkey, OSSL_PARAM params[]) { if (pkey != NULL) { if (evp_pkey_is_provided(pkey)) - return evp_keymgmt_get_params(pkey->keymgmt, pkey->keydata, params); + return evp_keymgmt_get_params(pkey->keymgmt, pkey->keydata, params) > 0; #ifndef FIPS_MODULE else if (evp_pkey_is_legacy(pkey)) - return evp_pkey_get_params_to_ctrl(pkey, params); + return evp_pkey_get_params_to_ctrl(pkey, params) > 0; #endif } ERR_raise(ERR_LIB_EVP, EVP_R_INVALID_KEY); diff --git a/doc/man3/EVP_PKEY_gettable_params.pod b/doc/man3/EVP_PKEY_gettable_params.pod index d85ff52cbb3..20bba142e51 100644 --- a/doc/man3/EVP_PKEY_gettable_params.pod +++ b/doc/man3/EVP_PKEY_gettable_params.pod @@ -79,7 +79,7 @@ These functions only work for Bs that contain a provider side key. =head1 RETURN VALUES -EVP_PKEY_gettable_params() returns NULL on error or if it is not supported, +EVP_PKEY_gettable_params() returns NULL on error or if it is not supported. All other methods return 1 if a value associated with the key's I was successfully returned, or 0 if there was an error.