]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
ASoC: samsung: tm2_wm5110: check of of_parse return value
authorPierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Fri, 12 Mar 2021 18:02:30 +0000 (12:02 -0600)
committerKelsey Skunberg <kelsey.skunberg@canonical.com>
Mon, 24 May 2021 23:46:11 +0000 (17:46 -0600)
BugLink: https://bugs.launchpad.net/bugs/1929455
commit d58970da324732686529655c21791cef0ee547c4 upstream.

cppcheck warning:

sound/soc/samsung/tm2_wm5110.c:605:6: style: Variable 'ret' is
reassigned a value before the old one has been
used. [redundantAssignment]
 ret = devm_snd_soc_register_component(dev, &tm2_component,
     ^
sound/soc/samsung/tm2_wm5110.c:554:7: note: ret is assigned
  ret = of_parse_phandle_with_args(dev->of_node, "i2s-controller",
      ^
sound/soc/samsung/tm2_wm5110.c:605:6: note: ret is overwritten
 ret = devm_snd_soc_register_component(dev, &tm2_component,
     ^

The args is a stack variable, so it could have junk (uninitialized)
therefore args.np could have a non-NULL and random value even though
property was missing. Later could trigger invalid pointer dereference.

There's no need to check for args.np because args.np won't be
initialized on errors.

Fixes: 8d1513cef51a ("ASoC: samsung: Add support for HDMI audio on TM2 board")
Cc: <stable@vger.kernel.org>
Suggested-by: Krzysztof Kozlowski <krzk@kernel.org>
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com>
Reviewed-by: Sylwester Nawrocki <s.nawrocki@samsung.com>
Signed-off-by: Pierre-Louis Bossart <pierre-louis.bossart@linux.intel.com>
Link: https://lore.kernel.org/r/20210312180231.2741-2-pierre-louis.bossart@linux.intel.com
Signed-off-by: Mark Brown <broonie@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Kamal Mostafa <kamal@canonical.com>
Signed-off-by: Kelsey Skunberg <kelsey.skunberg@canonical.com>
sound/soc/samsung/tm2_wm5110.c

index 9300fef9bf26985d503bc919c3706e8e80cbf361..125e07f65d2b50ff74bfc94e719942772176e1be 100644 (file)
@@ -553,7 +553,7 @@ static int tm2_probe(struct platform_device *pdev)
 
                ret = of_parse_phandle_with_args(dev->of_node, "i2s-controller",
                                                 cells_name, i, &args);
-               if (!args.np) {
+               if (ret) {
                        dev_err(dev, "i2s-controller property parse error: %d\n", i);
                        ret = -EINVAL;
                        goto dai_node_put;