power: supply: cros_peripheral: Use struct_size() helper in kzalloc()
authorXiaohui Zhang <xiaohuizhang@ruc.edu.cn>
Tue, 7 Jun 2022 15:03:44 +0000 (23:03 +0800)
committerSebastian Reichel <sebastian.reichel@collabora.com>
Thu, 9 Jun 2022 20:03:27 +0000 (22:03 +0200)
Similar to the handling of cros_usbpd_charger_ec_command in commit 441d38c60fbe
("power: supply: cros_usbpd: Use struct_size() helper in kzalloc()"),
we thought a patch might be needed here as well.

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 worst scenario, could lead to heap overflows.

Signed-off-by: Xiaohui Zhang <xiaohuizhang@ruc.edu.cn>
Signed-off-by: Sebastian Reichel <sebastian.reichel@collabora.com>
drivers/power/supply/cros_peripheral_charger.c

index 9fe6d826148db9634c96fbcb7b09a5b4b6d351ce..1379afd9698dfe88eb2c2aba56ace36ecf5a5f99 100644 (file)
@@ -63,7 +63,7 @@ static int cros_pchg_ec_command(const struct charger_data *charger,
        struct cros_ec_command *msg;
        int ret;
 
-       msg = kzalloc(sizeof(*msg) + max(outsize, insize), GFP_KERNEL);
+       msg = kzalloc(struct_size(msg, data, max(outsize, insize)), GFP_KERNEL);
        if (!msg)
                return -ENOMEM;