linux/drivers/bus
Julia Lawall d0184830e6 bus: mhi: host: use vmalloc_array and vcalloc
Use vmalloc_array and vcalloc to protect against
multiplication overflows.

The changes were done using the following Coccinelle
semantic patch:

// <smpl>
@initialize:ocaml@
@@

let rename alloc =
  match alloc with
    "vmalloc" -> "vmalloc_array"
  | "vzalloc" -> "vcalloc"
  | _ -> failwith "unknown"

@@
    size_t e1,e2;
    constant C1, C2;
    expression E1, E2, COUNT, x1, x2, x3;
    typedef u8;
    typedef __u8;
    type t = {u8,__u8,char,unsigned char};
    identifier alloc = {vmalloc,vzalloc};
    fresh identifier realloc = script:ocaml(alloc) { rename alloc };
@@

(
      alloc(x1*x2*x3)
|
      alloc(C1 * C2)
|
      alloc((sizeof(t)) * (COUNT), ...)
|
-     alloc((e1) * (e2))
+     realloc(e1, e2)
|
-     alloc((e1) * (COUNT))
+     realloc(COUNT, e1)
|
-     alloc((E1) * (E2))
+     realloc(E1, E2)
)
// </smpl>

Reviewed-by: Jeffrey Hugo <quic_jhugo@quicinc.com>
Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Link: https://lore.kernel.org/r/20230627144339.144478-11-Julia.Lawall@inria.fr
Signed-off-by: Manivannan Sadhasivam <manivannan.sadhasivam@linaro.org>
2023-07-13 10:31:46 +05:30
..
fsl-mc Char/Misc and other driver subsystem updates for 6.5-rc1 2023-07-03 12:46:47 -07:00
mhi bus: mhi: host: use vmalloc_array and vcalloc 2023-07-13 10:31:46 +05:30
arm-cci.c
arm-integrator-lm.c bus: arm-integrator-lm: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:50 -07:00
brcmstb_gisb.c bus: brcmstb_gisb: Use devm_platform_get_and_ioremap_resource() 2023-03-14 14:07:16 -07:00
bt1-apb.c bus: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
bt1-axi.c bus: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:53 -07:00
da8xx-mstpri.c
hisi_lpc.c bus: hisi_lpc: Use platform_device_register_full() 2022-09-08 02:27:29 +00:00
imx-weim.c ARM: SoC drivers for v6.4 2023-04-25 12:02:16 -07:00
intel-ixp4xx-eb.c bus: ixp4xx: fix IXP4XX_EXP_T1_MASK 2023-07-05 22:22:55 +02:00
Kconfig Kconfig: introduce HAS_IOPORT option and select it as necessary 2023-04-05 22:15:19 +02:00
Makefile bus: add driver for initializing the SSC bus on (some) qcom SoCs 2022-04-19 13:03:57 -05:00
mips_cdmm.c driver core: make struct bus_type.uevent() take a const * 2023-01-27 13:45:52 +01:00
moxtet.c spi: make remove callback a void function 2022-02-09 13:00:45 +00:00
mvebu-mbus.c bus: mvebu-mbus: Remove open coded "ranges" parsing 2023-04-18 11:18:24 -05:00
omap_l3_noc.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_320.RULE 2022-06-10 14:51:36 +02:00
omap_l3_noc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_320.RULE 2022-06-10 14:51:36 +02:00
omap_l3_smx.c
omap_l3_smx.h
omap-ocp2scp.c
qcom-ebi2.c bus: qcom: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:50 -07:00
qcom-ssc-block-bus.c bus: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:50 -07:00
simple-pm-bus.c drivers: bus: simple-pm-bus: remove MODULE_LICENSE in non-modules 2023-04-13 13:13:54 -07:00
sun50i-de2.c bus: sun50i-de2: Adjust printing error message 2021-10-13 14:48:48 +02:00
sunxi-rsb.c Driver core changes for 6.3-rc1 2023-02-24 12:58:55 -08:00
tegra-aconnect.c
tegra-gmi.c bus: tegra-gmi: Replace of_platform.h with explicit includes 2023-04-21 09:20:56 -05:00
ti-pwmss.c
ti-sysc.c bus: ti-sysc: Fix dispc quirk masking bool variables 2023-05-17 10:17:01 +03:00
ts-nbus.c treewide: Replace GPLv2 boilerplate/reference with SPDX - gpl-2.0_56.RULE (part 2) 2022-06-10 14:51:35 +02:00
uniphier-system-bus.c bus: uniphier-system-bus: Remove open coded "ranges" parsing 2023-03-30 13:37:21 -05:00
vexpress-config.c bus: vexpress-config: Add explicit of_platform.h include 2023-04-13 09:34:01 +01:00