linux-stable/drivers/of/unittest-data
Christian A. Ehrhardt b9d760dae5 of: Fix double free in of_parse_phandle_with_args_map
[ Upstream commit 4dde835698 ]

In of_parse_phandle_with_args_map() the inner loop that
iterates through the map entries calls of_node_put(new)
to free the reference acquired by the previous iteration
of the inner loop. This assumes that the value of "new" is
NULL on the first iteration of the inner loop.

Make sure that this is true in all iterations of the outer
loop by setting "new" to NULL after its value is assigned to "cur".

Extend the unittest to detect the double free and add an additional
test case that actually triggers this path.

Fixes: bd6f2fd5a1 ("of: Support parsing phandle argument lists through a nexus node")
Cc: Stephen Boyd <stephen.boyd@linaro.org>
Signed-off-by: "Christian A. Ehrhardt" <lk@c--e.de>
Link: https://lore.kernel.org/r/20231229105411.1603434-1-lk@c--e.de
Signed-off-by: Rob Herring <robh@kernel.org>
Signed-off-by: Sasha Levin <sashal@kernel.org>
2024-01-25 15:27:38 -08:00
..
Makefile
overlay.dts
overlay_0.dts
overlay_1.dts
overlay_2.dts
overlay_3.dts
overlay_4.dts
overlay_5.dts
overlay_6.dts
overlay_7.dts
overlay_8.dts
overlay_9.dts
overlay_10.dts
overlay_11.dts
overlay_12.dts
overlay_13.dts
overlay_15.dts
overlay_16.dts
overlay_17.dts
overlay_18.dts
overlay_19.dts
overlay_20.dts
overlay_bad_add_dup_node.dts
overlay_bad_add_dup_prop.dts
overlay_bad_phandle.dts
overlay_bad_symbol.dts
overlay_base.dts
overlay_common.dtsi
overlay_gpio_01.dts
overlay_gpio_02a.dts
overlay_gpio_02b.dts
overlay_gpio_03.dts
overlay_gpio_04a.dts
overlay_gpio_04b.dts
static_base_1.dts
static_base_2.dts
testcases.dts
testcases_common.dtsi
tests-address.dtsi
tests-interrupts.dtsi
tests-match.dtsi
tests-overlay.dtsi
tests-phandle.dtsi
tests-platform.dtsi