crypto: sm2 - Fix crash caused by uninitialized context
authorTianjia Zhang <tianjia.zhang@linux.alibaba.com>
Mon, 18 Sep 2023 08:38:50 +0000 (16:38 +0800)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 20 Sep 2023 05:10:10 +0000 (13:10 +0800)
In sm2_compute_z_digest() function, the newly allocated structure
mpi_ec_ctx is used, but forget to initialize it, which will cause
a crash when performing subsequent operations.

Fixes: e5221fa6a355 ("KEYS: asymmetric: Move sm2 code into x509_public_key")
Cc: stable@vger.kernel.org # v6.5
Signed-off-by: Tianjia Zhang <tianjia.zhang@linux.alibaba.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
crypto/sm2.c

index 285b3cb..5ab120d 100644 (file)
@@ -278,10 +278,14 @@ int sm2_compute_z_digest(struct shash_desc *desc,
        if (!ec)
                return -ENOMEM;
 
-       err = __sm2_set_pub_key(ec, key, keylen);
+       err = sm2_ec_ctx_init(ec);
        if (err)
                goto out_free_ec;
 
+       err = __sm2_set_pub_key(ec, key, keylen);
+       if (err)
+               goto out_deinit_ec;
+
        bits_len = SM2_DEFAULT_USERID_LEN * 8;
        entl[0] = bits_len >> 8;
        entl[1] = bits_len & 0xff;