[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1562743509-30496-3-git-send-email-wen.yang99@zte.com.cn>
Date: Wed, 10 Jul 2019 15:25:07 +0800
From: Wen Yang <wen.yang99@....com.cn>
To: lgirdwood@...il.com
Cc: broonie@...nel.org, perex@...ex.cz, tiwai@...e.com,
kuninori.morimoto.gx@...esas.com, alsa-devel@...a-project.org,
linux-kernel@...r.kernel.org, jonathanh@...dia.com,
xue.zhihong@....com.cn, wang.yi59@....com.cn,
cheng.shengyu@....com.cn, Wen Yang <wen.yang99@....com.cn>
Subject: [PATCH 2/4] ASoC: simple-card: fix an use-after-free in simple_for_each_link()
The codec variable is still being used after the of_node_put() call,
which may result in use-after-free.
Fixes: d947cdfd4be2 ("ASoC: simple-card: cleanup DAI link loop method - step1")
Signed-off-by: Wen Yang <wen.yang99@....com.cn>
Cc: Liam Girdwood <lgirdwood@...il.com>
Cc: Mark Brown <broonie@...nel.org>
Cc: Jaroslav Kysela <perex@...ex.cz>
Cc: Takashi Iwai <tiwai@...e.com>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@...esas.com>
Cc: Jon Hunter <jonathanh@...dia.com>
Cc: alsa-devel@...a-project.org
Cc: linux-kernel@...r.kernel.org
---
sound/soc/generic/simple-card.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/sound/soc/generic/simple-card.c b/sound/soc/generic/simple-card.c
index 4117e54..ef84915 100644
--- a/sound/soc/generic/simple-card.c
+++ b/sound/soc/generic/simple-card.c
@@ -364,8 +364,6 @@ static int simple_for_each_link(struct asoc_simple_priv *priv,
goto error;
}
- of_node_put(codec);
-
/* get convert-xxx property */
memset(&adata, 0, sizeof(adata));
for_each_child_of_node(node, np)
@@ -387,11 +385,13 @@ static int simple_for_each_link(struct asoc_simple_priv *priv,
ret = func_noml(priv, np, codec, li, is_top);
if (ret < 0) {
+ of_node_put(codec);
of_node_put(np);
goto error;
}
}
+ of_node_put(codec);
node = of_get_next_child(top, node);
} while (!is_top && node);
--
2.9.5
Powered by blists - more mailing lists