2013-03-11 16:35:18

by Wei Yongjun

[permalink] [raw]
Subject: [PATCH] ASoC: core: fix possible memory leak in snd_soc_bytes_put()

From: Wei Yongjun <[email protected]>

'data' is malloced in snd_soc_bytes_put() and should be freed
before leaving from the error handling cases, otherwise it will cause
memory leak.

Signed-off-by: Wei Yongjun <[email protected]>
---
sound/soc/soc-core.c | 6 ++++--
1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/sound/soc/soc-core.c b/sound/soc/soc-core.c
index b7e84a7..93341de 100644
--- a/sound/soc/soc-core.c
+++ b/sound/soc/soc-core.c
@@ -3140,7 +3140,7 @@ int snd_soc_bytes_put(struct snd_kcontrol *kcontrol,
if (params->mask) {
ret = regmap_read(codec->control_data, params->base, &val);
if (ret != 0)
- return ret;
+ goto out;

val &= params->mask;

@@ -3158,13 +3158,15 @@ int snd_soc_bytes_put(struct snd_kcontrol *kcontrol,
((u32 *)data)[0] |= cpu_to_be32(val);
break;
default:
- return -EINVAL;
+ ret = -EINVAL;
+ goto out;
}
}

ret = regmap_raw_write(codec->control_data, params->base,
data, len);

+out:
kfree(data);

return ret;


2013-03-12 18:43:24

by Mark Brown

[permalink] [raw]
Subject: Re: [PATCH] ASoC: core: fix possible memory leak in snd_soc_bytes_put()

On Tue, Mar 12, 2013 at 12:35:14AM +0800, Wei Yongjun wrote:
> From: Wei Yongjun <[email protected]>
>
> 'data' is malloced in snd_soc_bytes_put() and should be freed
> before leaving from the error handling cases, otherwise it will cause
> memory leak.

Applied, thanks.


Attachments:
(No filename) (285.00 B)
signature.asc (836.00 B)
Digital signature
Download all attachments