From 5886f0dace2ab5c43bd776fb6ce99be7debfae26 Mon Sep 17 00:00:00 2001 From: Murali Nalajala Date: Wed, 7 Sep 2022 17:38:11 -0700 Subject: [PATCH] mdt_loader: check for overflow before allocating memory Memory allocation is happening without checking the overflow. This could lead to an unexpected results. Check for overflow before allocating memory. Change-Id: Icb513ebd8030976e3f0970e9542596f9c5917843 Signed-off-by: Murali Nalajala --- drivers/soc/qcom/mdt_loader.c | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index 6034cd8992b0..2492b339d049 100644 --- a/drivers/soc/qcom/mdt_loader.c +++ b/drivers/soc/qcom/mdt_loader.c @@ -107,6 +107,10 @@ void *qcom_mdt_read_metadata(const struct firmware *fw, size_t *data_len) ehdr_size = phdrs[0].p_filesz; hash_size = phdrs[1].p_filesz; + /* Overflow check */ + if (ehdr_size > SIZE_MAX - hash_size) + return ERR_PTR(-ENOMEM); + data = kmalloc(ehdr_size + hash_size, GFP_KERNEL); if (!data) return ERR_PTR(-ENOMEM);