Commit 50e8ce14 authored by Kulikov Vasiliy's avatar Kulikov Vasiliy Committed by Mark Brown

ASoC: imx: check kzalloc() result and fix memory leak

If kzalloc() fails we must exit with -ENOMEM. Also we must free
allocated runtime->private_data on error as it would be lost on next
call to snd_imx_open().
Signed-off-by: default avatarKulikov Vasiliy <segooon@gmail.com>
Acked-by: default avatarLiam Girdwood <lrg@slimlogic.co.uk>
Signed-off-by: default avatarMark Brown <broonie@opensource.wolfsonmicro.com>
parent 51b6dfb6
...@@ -192,6 +192,8 @@ static int snd_imx_open(struct snd_pcm_substream *substream) ...@@ -192,6 +192,8 @@ static int snd_imx_open(struct snd_pcm_substream *substream)
int ret; int ret;
iprtd = kzalloc(sizeof(*iprtd), GFP_KERNEL); iprtd = kzalloc(sizeof(*iprtd), GFP_KERNEL);
if (iprtd == NULL)
return -ENOMEM;
runtime->private_data = iprtd; runtime->private_data = iprtd;
iprtd->substream = substream; iprtd->substream = substream;
...@@ -202,8 +204,10 @@ static int snd_imx_open(struct snd_pcm_substream *substream) ...@@ -202,8 +204,10 @@ static int snd_imx_open(struct snd_pcm_substream *substream)
ret = snd_pcm_hw_constraint_integer(substream->runtime, ret = snd_pcm_hw_constraint_integer(substream->runtime,
SNDRV_PCM_HW_PARAM_PERIODS); SNDRV_PCM_HW_PARAM_PERIODS);
if (ret < 0) if (ret < 0) {
kfree(iprtd);
return ret; return ret;
}
snd_soc_set_runtime_hwparams(substream, &snd_imx_hardware); snd_soc_set_runtime_hwparams(substream, &snd_imx_hardware);
return 0; return 0;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment