linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info
@ 2023-04-11  0:34 Aashish Sharma
  2023-04-11  3:02 ` Guenter Roeck
                   ` (2 more replies)
  0 siblings, 3 replies; 4+ messages in thread
From: Aashish Sharma @ 2023-04-11  0:34 UTC (permalink / raw)
  To: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Matthias Brugger, AngeloGioacchino Del Regno, Trevor Wu,
	Guenter Roeck
  Cc: alsa-devel, linux-kernel, linux-arm-kernel, linux-mediatek,
	Aashish Sharma, kernel test robot, Julia Lawall

Add missing of_node_put()s before the returns to balance
of_node_get()s and of_node_put()s, which may get unbalanced
in case the for loop 'for_each_available_child_of_node' returns
early.

Fixes: 4302187d955f ("ASoC: mediatek: common: add soundcard driver common code")
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Julia Lawall <julia.lawall@inria.fr>
Link: https://lore.kernel.org/r/202304090504.2K8L6soj-lkp@intel.com/
Signed-off-by: Aashish Sharma <shraash@google.com>
---
 sound/soc/mediatek/common/mtk-soundcard-driver.c | 12 +++++++++---
 1 file changed, 9 insertions(+), 3 deletions(-)

diff --git a/sound/soc/mediatek/common/mtk-soundcard-driver.c b/sound/soc/mediatek/common/mtk-soundcard-driver.c
index 7c55c2cb1f21..738093451ccb 100644
--- a/sound/soc/mediatek/common/mtk-soundcard-driver.c
+++ b/sound/soc/mediatek/common/mtk-soundcard-driver.c
@@ -47,20 +47,26 @@ int parse_dai_link_info(struct snd_soc_card *card)
 	/* Loop over all the dai link sub nodes */
 	for_each_available_child_of_node(dev->of_node, sub_node) {
 		if (of_property_read_string(sub_node, "link-name",
-					    &dai_link_name))
+					    &dai_link_name)) {
+			of_node_put(sub_node);
 			return -EINVAL;
+		}
 
 		for_each_card_prelinks(card, i, dai_link) {
 			if (!strcmp(dai_link_name, dai_link->name))
 				break;
 		}
 
-		if (i >= card->num_links)
+		if (i >= card->num_links) {
+			of_node_put(sub_node);
 			return -EINVAL;
+		}
 
 		ret = set_card_codec_info(card, sub_node, dai_link);
-		if (ret < 0)
+		if (ret < 0) {
+			of_node_put(sub_node);
 			return ret;
+		}
 	}
 
 	return 0;
-- 
2.40.0.577.gac1e443424-goog


^ permalink raw reply related	[flat|nested] 4+ messages in thread

* Re: [PATCH] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info
  2023-04-11  0:34 [PATCH] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info Aashish Sharma
@ 2023-04-11  3:02 ` Guenter Roeck
  2023-04-11  3:32 ` Trevor Wu (吳文良)
  2023-04-11 14:19 ` Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Guenter Roeck @ 2023-04-11  3:02 UTC (permalink / raw)
  To: Aashish Sharma
  Cc: Liam Girdwood, Mark Brown, Jaroslav Kysela, Takashi Iwai,
	Matthias Brugger, AngeloGioacchino Del Regno, Trevor Wu,
	Guenter Roeck, alsa-devel, linux-kernel, linux-arm-kernel,
	linux-mediatek, kernel test robot, Julia Lawall

On Mon, Apr 10, 2023 at 5:34 PM Aashish Sharma <shraash@google.com> wrote:
>
> Add missing of_node_put()s before the returns to balance
> of_node_get()s and of_node_put()s, which may get unbalanced
> in case the for loop 'for_each_available_child_of_node' returns
> early.
>
> Fixes: 4302187d955f ("ASoC: mediatek: common: add soundcard driver common code")
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Julia Lawall <julia.lawall@inria.fr>
> Link: https://lore.kernel.org/r/202304090504.2K8L6soj-lkp@intel.com/
> Signed-off-by: Aashish Sharma <shraash@google.com>

Reviewed-by: Guenter Roeck <groeck@chromium.org>

> ---
>  sound/soc/mediatek/common/mtk-soundcard-driver.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
>
> diff --git a/sound/soc/mediatek/common/mtk-soundcard-driver.c b/sound/soc/mediatek/common/mtk-soundcard-driver.c
> index 7c55c2cb1f21..738093451ccb 100644
> --- a/sound/soc/mediatek/common/mtk-soundcard-driver.c
> +++ b/sound/soc/mediatek/common/mtk-soundcard-driver.c
> @@ -47,20 +47,26 @@ int parse_dai_link_info(struct snd_soc_card *card)
>         /* Loop over all the dai link sub nodes */
>         for_each_available_child_of_node(dev->of_node, sub_node) {
>                 if (of_property_read_string(sub_node, "link-name",
> -                                           &dai_link_name))
> +                                           &dai_link_name)) {
> +                       of_node_put(sub_node);
>                         return -EINVAL;
> +               }
>
>                 for_each_card_prelinks(card, i, dai_link) {
>                         if (!strcmp(dai_link_name, dai_link->name))
>                                 break;
>                 }
>
> -               if (i >= card->num_links)
> +               if (i >= card->num_links) {
> +                       of_node_put(sub_node);
>                         return -EINVAL;
> +               }
>
>                 ret = set_card_codec_info(card, sub_node, dai_link);
> -               if (ret < 0)
> +               if (ret < 0) {
> +                       of_node_put(sub_node);
>                         return ret;
> +               }
>         }
>
>         return 0;
> --
> 2.40.0.577.gac1e443424-goog
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info
  2023-04-11  0:34 [PATCH] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info Aashish Sharma
  2023-04-11  3:02 ` Guenter Roeck
@ 2023-04-11  3:32 ` Trevor Wu (吳文良)
  2023-04-11 14:19 ` Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Trevor Wu (吳文良) @ 2023-04-11  3:32 UTC (permalink / raw)
  To: broonie, groeck, tiwai, lgirdwood, matthias.bgg, shraash, perex,
	angelogioacchino.delregno
  Cc: linux-arm-kernel, linux-kernel, linux-mediatek, lkp, alsa-devel,
	julia.lawall

On Tue, 2023-04-11 at 06:04 +0530, Aashish Sharma wrote:
> External email : Please do not click links or open attachments until
> you have verified the sender or the content.
> 
> 
> Add missing of_node_put()s before the returns to balance
> of_node_get()s and of_node_put()s, which may get unbalanced
> in case the for loop 'for_each_available_child_of_node' returns
> early.
> 
> Fixes: 4302187d955f ("ASoC: mediatek: common: add soundcard driver
> common code")
> Reported-by: kernel test robot <lkp@intel.com>
> Reported-by: Julia Lawall <julia.lawall@inria.fr>
> Link: https://lore.kernel.org/r/202304090504.2K8L6soj-lkp@intel.com/
> Signed-off-by: Aashish Sharma <shraash@google.com>


Reviewed-by: Trevor Wu <trevor.wu@mediatek.com>

> ---
>  sound/soc/mediatek/common/mtk-soundcard-driver.c | 12 +++++++++---
>  1 file changed, 9 insertions(+), 3 deletions(-)
> 
> diff --git a/sound/soc/mediatek/common/mtk-soundcard-driver.c
> b/sound/soc/mediatek/common/mtk-soundcard-driver.c
> index 7c55c2cb1f21..738093451ccb 100644
> --- a/sound/soc/mediatek/common/mtk-soundcard-driver.c
> +++ b/sound/soc/mediatek/common/mtk-soundcard-driver.c
> @@ -47,20 +47,26 @@ int parse_dai_link_info(struct snd_soc_card
> *card)
>         /* Loop over all the dai link sub nodes */
>         for_each_available_child_of_node(dev->of_node, sub_node) {
>                 if (of_property_read_string(sub_node, "link-name",
> -                                           &dai_link_name))
> +                                           &dai_link_name)) {
> +                       of_node_put(sub_node);
>                         return -EINVAL;
> +               }
> 
>                 for_each_card_prelinks(card, i, dai_link) {
>                         if (!strcmp(dai_link_name, dai_link->name))
>                                 break;
>                 }
> 
> -               if (i >= card->num_links)
> +               if (i >= card->num_links) {
> +                       of_node_put(sub_node);
>                         return -EINVAL;
> +               }
> 
>                 ret = set_card_codec_info(card, sub_node, dai_link);
> -               if (ret < 0)
> +               if (ret < 0) {
> +                       of_node_put(sub_node);
>                         return ret;
> +               }
>         }
> 
>         return 0;
> --
> 2.40.0.577.gac1e443424-goog
> 

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: [PATCH] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info
  2023-04-11  0:34 [PATCH] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info Aashish Sharma
  2023-04-11  3:02 ` Guenter Roeck
  2023-04-11  3:32 ` Trevor Wu (吳文良)
@ 2023-04-11 14:19 ` Mark Brown
  2 siblings, 0 replies; 4+ messages in thread
From: Mark Brown @ 2023-04-11 14:19 UTC (permalink / raw)
  To: Liam Girdwood, Jaroslav Kysela, Takashi Iwai, Matthias Brugger,
	AngeloGioacchino Del Regno, Trevor Wu, Guenter Roeck,
	Aashish Sharma
  Cc: alsa-devel, linux-kernel, linux-arm-kernel, linux-mediatek,
	kernel test robot, Julia Lawall

On Tue, 11 Apr 2023 06:04:31 +0530, Aashish Sharma wrote:
> Add missing of_node_put()s before the returns to balance
> of_node_get()s and of_node_put()s, which may get unbalanced
> in case the for loop 'for_each_available_child_of_node' returns
> early.
> 
> 

Applied to

   https://git.kernel.org/pub/scm/linux/kernel/git/broonie/sound.git for-next

Thanks!

[1/1] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info
      commit: beed115c2ce78f990222a29abed042582df4e87c

All being well this means that it will be integrated into the linux-next
tree (usually sometime in the next 24 hours) and sent to Linus during
the next merge window (or sooner if it is a bug fix), however if
problems are discovered then the patch may be dropped or reverted.

You may get further e-mails resulting from automated or manual testing
and review of the tree, please engage with people reporting problems and
send followup patches addressing any issues that are reported if needed.

If any updates are required or you are submitting further changes they
should be sent as incremental updates against current git, existing
patches will not be replaced.

Please add any relevant lists and maintainers to the CCs when replying
to this mail.

Thanks,
Mark


^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2023-04-11 14:19 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2023-04-11  0:34 [PATCH] ASoC: mediatek: common: Fix refcount leak in parse_dai_link_info Aashish Sharma
2023-04-11  3:02 ` Guenter Roeck
2023-04-11  3:32 ` Trevor Wu (吳文良)
2023-04-11 14:19 ` Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).