]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
crypto/ml_dsa: fix public_from_private() error path to return failure
authorrodeka <rodeka.core@ya.ru>
Tue, 16 Sep 2025 17:38:17 +0000 (20:38 +0300)
committerPauli <paul.dale@oracle.com>
Wed, 17 Sep 2025 23:04:32 +0000 (09:04 +1000)
The error label returned success (1) even on failure. Make it return failure (0) instead.
Fixes #28562

CLA: trivial

Reviewed-by: Todd Short <todd.short@me.com>
Reviewed-by: Paul Dale <ppzgs1@gmail.com>
(Merged from https://github.com/openssl/openssl/pull/28576)

(cherry picked from commit 925e4fba1098036e8f8d22652cff6f64c5c7d571)

crypto/ml_dsa/ml_dsa_key.c

index 41df1a956fb82139fb87d7c0b30de429cdcfbe5c..50e3b54330854f661a624298999c43f48e535324 100644 (file)
@@ -311,6 +311,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 = params->k, l = params->l;
     POLY *polys;
@@ -343,9 +344,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)