Use the overflow-protected struct_size() helper macro to compute the
allocation size of the vop2 data structure.

Signed-off-by: Jacob Keller <[email protected]>
Cc: Sandy Huang <[email protected]>
Cc: Heiko Stübner <[email protected]>
Cc: David Airlie <[email protected]>
---
I found this while developing a coccinelle script to detect potential places
where struct_size() would be appropriate.

 drivers/gpu/drm/rockchip/rockchip_drm_vop2.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c 
b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
index 0e0012368976..3e5861653b69 100644
--- a/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
+++ b/drivers/gpu/drm/rockchip/rockchip_drm_vop2.c
@@ -2655,7 +2655,7 @@ static int vop2_bind(struct device *dev, struct device 
*master, void *data)
                return -ENODEV;
 
        /* Allocate vop2 struct and its vop2_win array */
-       alloc_size = sizeof(*vop2) + sizeof(*vop2->win) * vop2_data->win_size;
+       alloc_size = struct_size(vop2, win, vop2_data->win_size);
        vop2 = devm_kzalloc(dev, alloc_size, GFP_KERNEL);
        if (!vop2)
                return -ENOMEM;

base-commit: 4d5a2cce47a8e1e7119a881a4714f0eee557c1cd
-- 
2.39.1.405.gd4c25cc71f83

Reply via email to