ubifs: Fix memleak in ubifs_init_authentication

[ Upstream commit 11b8ab3836454a2600e396f34731e491b661f9d5 ]

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

Fixes: 49525e5eec ("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>
This commit is contained in:
Dinghao Liu 2021-01-05 14:03:40 +08:00 committed by Greg Kroah-Hartman
parent bdf9437459
commit bdb176a0c8

View File

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