dmaengine: stm32-mdma: Use struct_size() helper in devm_kzalloc()
authorGustavo A. R. Silva <gustavoars@kernel.org>
Wed, 29 Sep 2021 22:29:22 +0000 (17:29 -0500)
committerVinod Koul <vkoul@kernel.org>
Fri, 1 Oct 2021 11:57:42 +0000 (17:27 +0530)
Make use of the struct_size() helper instead of an open-coded version,
in order to avoid any potential type mistakes or integer overflows that,
in the worse scenario, could lead to heap overflows.

Link: https://github.com/KSPP/linux/issues/160
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Amelie Delaunay <amelie.delaunay@foss.st.com>
Reviewed-by: Kees Cook <keescook@chromium.org>
Link: https://lore.kernel.org/r/20210929222922.GA357509@embeddedor
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/dma/stm32-mdma.c

index 18cbd1e..d30a4a2 100644 (file)
@@ -1566,7 +1566,8 @@ static int stm32_mdma_probe(struct platform_device *pdev)
        if (count < 0)
                count = 0;
 
-       dmadev = devm_kzalloc(&pdev->dev, sizeof(*dmadev) + sizeof(u32) * count,
+       dmadev = devm_kzalloc(&pdev->dev,
+                             struct_size(dmadev, ahb_addr_masks, count),
                              GFP_KERNEL);
        if (!dmadev)
                return -ENOMEM;