]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
of: Fix error path in of_parse_phandle_with_args_map()
authorHerve Codina <herve.codina@bootlin.com>
Mon, 2 Dec 2024 16:58:19 +0000 (17:58 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 9 Jan 2025 12:28:36 +0000 (13:28 +0100)
commita579b0b6a82f33ff75097895a0545bcf7e317cb5
treed0c1c170d9a2d5f6ffcfa3f4e8977c6e3153a34c
parent0227594be815a5aa6634809e6c605f2b085212e0
of: Fix error path in of_parse_phandle_with_args_map()

commit d7dfa7fde63dde4d2ec0083133efe2c6686c03ff upstream.

The current code uses some 'goto put;' to cancel the parsing operation
and can lead to a return code value of 0 even on error cases.

Indeed, some goto calls are done from a loop without setting the ret
value explicitly before the goto call and so the ret value can be set to
0 due to operation done in previous loop iteration. For instance match
can be set to 0 in the previous loop iteration (leading to a new
iteration) but ret can also be set to 0 it the of_property_read_u32()
call succeed. In that case if no match are found or if an error is
detected the new iteration, the return value can be wrongly 0.

Avoid those cases setting the ret value explicitly before the goto
calls.

Fixes: bd6f2fd5a1d5 ("of: Support parsing phandle argument lists through a nexus node")
Cc: stable@vger.kernel.org
Signed-off-by: Herve Codina <herve.codina@bootlin.com>
Link: https://lore.kernel.org/r/20241202165819.158681-1-herve.codina@bootlin.com
Signed-off-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/of/base.c