mirror of
https://github.com/torvalds/linux.git
synced 2024-11-15 08:31:55 +00:00
ASoC: core: fix possible memory leak in snd_soc_bytes_put()
'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 <yongjun_wei@trendmicro.com.cn> Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com>
This commit is contained in:
parent
f6161aa153
commit
e8b18addee
@ -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;
|
||||
|
Loading…
Reference in New Issue
Block a user