From: Dan Carpenter Date: Thu, 1 Sep 2022 05:18:45 +0000 (+0300) Subject: fpga: prevent integer overflow in dfl_feature_ioctl_set_irq() X-Git-Url: http://git.maquefel.me/?a=commitdiff_plain;h=939bc5453b8cbdde9f1e5110ce8309aedb1b501a;p=linux.git fpga: prevent integer overflow in dfl_feature_ioctl_set_irq() The "hdr.count * sizeof(s32)" multiplication can overflow on 32 bit systems leading to memory corruption. Use array_size() to fix that. Fixes: 322b598be4d9 ("fpga: dfl: introduce interrupt trigger setting API") Signed-off-by: Dan Carpenter Acked-by: Xu Yilun Link: https://lore.kernel.org/r/YxBAtYCM38dM7yzI@kili Signed-off-by: Xu Yilun --- diff --git a/drivers/fpga/dfl.c b/drivers/fpga/dfl.c index 5498bc337f8b2..b9aae85ba9308 100644 --- a/drivers/fpga/dfl.c +++ b/drivers/fpga/dfl.c @@ -1866,7 +1866,7 @@ long dfl_feature_ioctl_set_irq(struct platform_device *pdev, return -EINVAL; fds = memdup_user((void __user *)(arg + sizeof(hdr)), - hdr.count * sizeof(s32)); + array_size(hdr.count, sizeof(s32))); if (IS_ERR(fds)) return PTR_ERR(fds);