diff --git a/drivers/soc/qcom/mdt_loader.c b/drivers/soc/qcom/mdt_loader.c index a12d61399e69f6194d8bd83e015452719c4a644d..78ef8541a107db282c6fb311695bca371e103a7c 100644 --- a/drivers/soc/qcom/mdt_loader.c +++ b/drivers/soc/qcom/mdt_loader.c @@ -139,6 +139,10 @@ void *qcom_mdt_read_metadata(struct device *dev, const struct firmware *fw, cons ehdr_size = phdrs[0].p_filesz; hash_size = phdrs[hash_index].p_filesz; + /* Overflow check */ + if (ehdr_size > SIZE_MAX - hash_size) + return ERR_PTR(-ENOMEM); + /* * During the scm call memory protection will be enabled for the meta * data blob, so make sure it's physically contiguous, 4K aligned and