提交 70fcad49 编写于 作者: C Charles Keepax 提交者: Mark Brown

ASoC: Fix leak of rtd in soc_bind_dai_link

If we fail to find a platform we simply return EPROBE_DEFER,
but we have allocated the rtd pointer. All error paths before
soc_add_pcm_runtime need to call soc_free_pcm_runtime first to
avoid leaking the rtd pointer. A suitable error path already
exists and is used else where in the function so simply use that
here as well.
Signed-off-by: NCharles Keepax <ckeepax@opensource.wolfsonmicro.com>
Signed-off-by: NMark Brown <broonie@kernel.org>
上级 29b4817d
...@@ -1056,7 +1056,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card, ...@@ -1056,7 +1056,7 @@ static int soc_bind_dai_link(struct snd_soc_card *card,
if (!rtd->platform) { if (!rtd->platform) {
dev_err(card->dev, "ASoC: platform %s not registered\n", dev_err(card->dev, "ASoC: platform %s not registered\n",
dai_link->platform_name); dai_link->platform_name);
return -EPROBE_DEFER; goto _err_defer;
} }
soc_add_pcm_runtime(card, rtd); soc_add_pcm_runtime(card, rtd);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册