linux/drivers/bus
Ioana Ciornei 1d5baab39e bus: fsl-mc: fix double-free on mc_dev
[ Upstream commit d694bf8a9a ]

The blamed commit tried to simplify how the deallocations are done but,
in the process, introduced a double-free on the mc_dev variable.

In case the MC device is a DPRC, a new mc_bus is allocated and the
mc_dev variable is just a reference to one of its fields. In this
circumstance, on the error path only the mc_bus should be freed.

This commit introduces back the following checkpatch warning which is a
false-positive.

WARNING: kfree(NULL) is safe and this check is probably not required
+       if (mc_bus)
+               kfree(mc_bus);

Fixes: a042fbed02 ("staging: fsl-mc: simplify couple of deallocations")
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com>
Link: https://lore.kernel.org/r/20250408105814.2837951-2-ioana.ciornei@nxp.com
Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-06-19 15:32:01 +02:00
..
fsl-mc bus: fsl-mc: fix double-free on mc_dev 2025-06-19 15:32:01 +02:00
mhi bus: mhi: host: Fix race between unprepare and queue_buf 2025-04-20 10:15:42 +02:00
arm-cci.c bus: arm-cci: remove unnecessary unreachable() 2018-05-14 01:22:49 -07:00
arm-integrator-lm.c bus: integrator-lm: fix OF node leak in probe() 2024-09-02 10:18:43 +02:00
brcmstb_gisb.c bus: brcmstb_gisb: fix module autoloading 2024-04-10 10:55:05 -07:00
bt1-apb.c bus: bt1-apb: change to use devm_clk_get_enabled() helper 2024-08-29 10:45:13 +02:00
bt1-axi.c bus: bt1-axi: change to use devm_clk_get_enabled() helper 2024-08-29 10:44:53 +02:00
da8xx-mstpri.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
hisi_lpc.c bus: hisi_lpc: Convert to platform remove callback returning void 2023-11-28 18:43:26 +01:00
imx-weim.c bus: imx-weim: change to use devm_clk_get_enabled() helper 2024-09-01 17:06:33 +08:00
intel-ixp4xx-eb.c bus: ixp4xx: fix IXP4XX_EXP_T1_MASK 2023-07-05 22:22:55 +02:00
Kconfig bus: imx-weim: support compile test 2024-09-01 17:06:33 +08:00
Makefile bus: etzpc: introduce ETZPC firewall controller driver 2024-04-25 14:44:39 +02:00
mips_cdmm.c driver core: have match() callback in struct bus_type take a const * 2024-07-03 15:16:54 +02:00
moxtet.c [tree-wide] finally take no_llseek out 2024-09-27 08:18:43 -07:00
mvebu-mbus.c bus: mvebu-mbus: Remove open coded "ranges" parsing 2023-04-18 11:18:24 -05:00
omap-ocp2scp.c bus: omap-ocp2scp: Convert to platform remove callback returning void 2023-11-28 18:43:26 +01: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 bus: omap_l3_smx: Convert to platform remove callback returning void 2023-11-28 18:43:26 +01:00
omap_l3_smx.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 156 2019-05-30 11:26:35 -07:00
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: qcom-ssc-block-bus: Convert to platform remove callback returning void 2023-11-28 18:43:26 +01:00
simple-pm-bus.c bus: simple-pm-bus: Convert to platform remove callback returning void 2023-11-28 18:43:26 +01:00
stm32_etzpc.c bus: etzpc: introduce ETZPC firewall controller driver 2024-04-25 14:44:39 +02:00
stm32_firewall.c bus: stm32_firewall: fix off by one in stm32_firewall_get_firewall() 2024-04-25 14:44:39 +02:00
stm32_firewall.h firewall: introduce stm32_firewall framework 2024-04-05 16:49:14 +02:00
stm32_rifsc.c bus: rifsc: introduce RIFSC firewall controller driver 2024-04-24 14:30:35 +02:00
sun50i-de2.c bus: sun50i-de2: Convert to platform remove callback returning void 2023-11-28 18:43:26 +01:00
sunxi-rsb.c bus: sunxi-rsb: Simplify code with dev_err_probe() 2024-09-05 23:20:47 +08:00
tegra-aconnect.c bus: tegra-aconnect: Convert to platform remove callback returning void 2023-11-28 18:43:26 +01:00
tegra-gmi.c bus: tegra-gmi: Convert to platform remove callback returning void 2023-11-28 18:43:26 +01:00
ti-pwmss.c bus: ti-pwmss: Convert to platform remove callback returning void 2023-11-28 18:43:27 +01:00
ti-sysc.c bus: ti-sysc: Remove excess struct member 'disable_on_idle' description 2024-08-05 10:38:10 -07:00
ts-nbus.c bus: ts-nbus: Use pwm_apply_might_sleep() 2024-07-10 17:52:47 +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 missing MODULE_DESCRIPTION() macro 2024-06-20 09:43:33 +01:00