From: rodeka Date: Tue, 16 Sep 2025 17:38:17 +0000 (+0300) Subject: crypto/ml_dsa: fix public_from_private() error path to return failure X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=925e4fba1098036e8f8d22652cff6f64c5c7d571;p=thirdparty%2Fopenssl.git crypto/ml_dsa: fix public_from_private() error path to return failure The error label returned success (1) even on failure. Make it return failure (0) instead. Fixes #28562 CLA: trivial Reviewed-by: Todd Short Reviewed-by: Paul Dale (Merged from https://github.com/openssl/openssl/pull/28576) --- diff --git a/crypto/ml_dsa/ml_dsa_key.c b/crypto/ml_dsa/ml_dsa_key.c index e2cb399098b..94f906a9fc1 100644 --- a/crypto/ml_dsa/ml_dsa_key.c +++ b/crypto/ml_dsa/ml_dsa_key.c @@ -319,6 +319,7 @@ int ossl_ml_dsa_key_has(const ML_DSA_KEY *key, int selection) static int public_from_private(const ML_DSA_KEY *key, EVP_MD_CTX *md_ctx, VECTOR *t1, VECTOR *t0) { + int ret = 0; const ML_DSA_PARAMS *params = key->params; uint32_t k = (uint32_t)params->k, l = (uint32_t)params->l; POLY *polys; @@ -351,9 +352,10 @@ static int public_from_private(const ML_DSA_KEY *key, EVP_MD_CTX *md_ctx, /* Zeroize secret */ vector_zero(&s1_ntt); + ret = 1; err: OPENSSL_free(polys); - return 1; + return ret; } int ossl_ml_dsa_key_public_from_private(ML_DSA_KEY *key)