crypto: hisilicon/hpre - fix memory leak in hpre_curve25519_src_init()
authorWeili Qian <qianweili@huawei.com>
Sat, 11 Dec 2021 08:17:19 +0000 (16:17 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jan 2022 10:04:44 +0000 (11:04 +0100)
[ Upstream commit 51fa916b81e5f406a74f14a31a3a228c3cc060ad ]

hpre_curve25519_src_init() allocates memory for 'ptr' before calling
memcmp(). If memcmp() returns 0, the function will return '-EINVAL'
without freeing memory.

Signed-off-by: Weili Qian <qianweili@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/hisilicon/hpre/hpre_crypto.c

index a032c19..7ba7641 100644 (file)
@@ -1865,7 +1865,7 @@ static int hpre_curve25519_src_init(struct hpre_asym_request *hpre_req,
         */
        if (memcmp(ptr, p, ctx->key_sz) == 0) {
                dev_err(dev, "gx is p!\n");
-               return -EINVAL;
+               goto err;
        } else if (memcmp(ptr, p, ctx->key_sz) > 0) {
                hpre_curve25519_src_modulo_p(ptr);
        }