ubifs: Fix memleak in ubifs_init_authentication
authorDinghao Liu <dinghao.liu@zju.edu.cn>
Tue, 5 Jan 2021 06:03:40 +0000 (14:03 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 4 Mar 2021 09:26:25 +0000 (10:26 +0100)
[ Upstream commit 11b8ab3836454a2600e396f34731e491b661f9d5 ]

When crypto_shash_digestsize() fails, c->hmac_tfm
has not been freed before returning, which leads
to memleak.

Fixes: 49525e5eecca5 ("ubifs: Add helper functions for authentication support")
Signed-off-by: Dinghao Liu <dinghao.liu@zju.edu.cn>
Reviewed-by: Zhihao Cheng <chengzhihao1@huawei.com>
Signed-off-by: Richard Weinberger <richard@nod.at>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/ubifs/auth.c

index b10418b5fb719e5667e26d3c089242f7aaa45ae9..8be17a773196169a55ef4c905788e7163067a213 100644 (file)
@@ -342,7 +342,7 @@ int ubifs_init_authentication(struct ubifs_info *c)
                ubifs_err(c, "hmac %s is bigger than maximum allowed hmac size (%d > %d)",
                          hmac_name, c->hmac_desc_len, UBIFS_HMAC_ARR_SZ);
                err = -EINVAL;
-               goto out_free_hash;
+               goto out_free_hmac;
        }
 
        err = crypto_shash_setkey(c->hmac_tfm, ukp->data, ukp->datalen);