public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] ASoC: SOF: ipc: Fix memory leak in sof_set_get_large_ctrl_data
@ 2019-10-27 21:53 Navid Emamdoost
  2019-10-28  2:15 ` Pierre-Louis Bossart
  2019-10-28 14:56 ` Applied "ASoC: SOF: ipc: Fix memory leak in sof_set_get_large_ctrl_data" to the asoc tree Mark Brown
  0 siblings, 2 replies; 4+ messages in thread
From: Navid Emamdoost @ 2019-10-27 21:53 UTC (permalink / raw)
  Cc: emamd001, kjlu, smccaman, Navid Emamdoost, Liam Girdwood,
	Mark Brown, Jaroslav Kysela, Takashi Iwai, Pierre-Louis Bossart,
	Guennadi Liakhovetski, Ranjani Sridharan, Pan Xiuli, Kai Vehmanen,
	Slawomir Blauciak, alsa-devel, linux-kernel

In the implementation of sof_set_get_large_ctrl_data() there is a memory
leak in case an error. Release partdata if sof_get_ctrl_copy_params()
fails.

Fixes: 54d198d5019d ("ASoC: SOF: Propagate sof_get_ctrl_copy_params() error properly")
Signed-off-by: Navid Emamdoost <navid.emamdoost@gmail.com>
---
 sound/soc/sof/ipc.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sound/soc/sof/ipc.c b/sound/soc/sof/ipc.c
index b2f359d2f7e5..086eeeab8679 100644
--- a/sound/soc/sof/ipc.c
+++ b/sound/soc/sof/ipc.c
@@ -572,8 +572,10 @@ static int sof_set_get_large_ctrl_data(struct snd_sof_dev *sdev,
 	else
 		err = sof_get_ctrl_copy_params(cdata->type, partdata, cdata,
 					       sparams);
-	if (err < 0)
+	if (err < 0) {
+		kfree(partdata);
 		return err;
+	}
 
 	msg_bytes = sparams->msg_bytes;
 	pl_size = sparams->pl_size;
-- 
2.17.1


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

end of thread, other threads:[~2019-10-28 16:35 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-10-27 21:53 [PATCH] ASoC: SOF: ipc: Fix memory leak in sof_set_get_large_ctrl_data Navid Emamdoost
2019-10-28  2:15 ` Pierre-Louis Bossart
2019-10-28 16:35   ` Navid Emamdoost
2019-10-28 14:56 ` Applied "ASoC: SOF: ipc: Fix memory leak in sof_set_get_large_ctrl_data" to the asoc tree Mark Brown

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox