]> git.ipfire.org Git - thirdparty/openssl.git/commitdiff
Check EC_GROUP_get0_order result before dereference
authorJohnnySavages <drokov@rutoken.ru>
Thu, 27 Jun 2024 01:59:52 +0000 (21:59 -0400)
committerTomas Mraz <tomas@openssl.org>
Mon, 1 Jul 2024 08:03:38 +0000 (10:03 +0200)
CLA: trivial

Reviewed-by: Paul Dale <ppzgs1@gmail.com>
Reviewed-by: Matt Caswell <matt@openssl.org>
Reviewed-by: Tomas Mraz <tomas@openssl.org>
(Merged from https://github.com/openssl/openssl/pull/24755)

crypto/ec/ecdsa_ossl.c

index 1e611f7ffce0b147aca1eaa67b78f751ef43194a..2f3c169d3278f75e6af71f5d3be6fae02c5e3c68 100644 (file)
@@ -172,7 +172,11 @@ static int ecdsa_sign_setup(EC_KEY *eckey, BN_CTX *ctx_in,
         ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);
         goto err;
     }
-    order = EC_GROUP_get0_order(group);
+
+    if ((order = EC_GROUP_get0_order(group)) == NULL) {
+        ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);
+        goto err;
+    }
 
     /* Preallocate space */
     order_bits = BN_num_bits(order);
@@ -308,7 +312,11 @@ ECDSA_SIG *ossl_ecdsa_simple_sign_sig(const unsigned char *dgst, int dgst_len,
         goto err;
     }
 
-    order = EC_GROUP_get0_order(group);
+    if ((order = EC_GROUP_get0_order(group)) == NULL) {
+        ERR_raise(ERR_LIB_EC, ERR_R_EC_LIB);
+        goto err;
+    }
+
     i = BN_num_bits(order);
     /*
      * Need to truncate digest if it is too long: first truncate whole bytes.