mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-09 21:59:12 -04:00
asoc: Fix a memory leak issue when nvmem read returns invalid length
When nvmem cell read returns invalid length the allocated buffer is not freed. Free the buffer in this scenario to fix memory leak issue. Change-Id: I68585c1dd45b0a40c471bf42dea201cd0ebb497f Signed-off-by: Aditya Bavanari <abavanar@codeaurora.org>
This commit is contained in:
parent
127718f3d9
commit
d8864856e7
1 changed files with 7 additions and 1 deletions
|
|
@ -6714,10 +6714,16 @@ static int msm_asoc_machine_probe(struct platform_device *pdev)
|
|||
}
|
||||
buf = nvmem_cell_read(cell, &len);
|
||||
nvmem_cell_put(cell);
|
||||
if (IS_ERR_OR_NULL(buf) || len <= 0 || len > sizeof(32)) {
|
||||
if (IS_ERR_OR_NULL(buf)) {
|
||||
dev_dbg(&pdev->dev, "%s: FAILED to read nvmem cell \n", __func__);
|
||||
goto ret;
|
||||
}
|
||||
if (len <= 0 || len > sizeof(u32)) {
|
||||
dev_dbg(&pdev->dev, "%s: nvmem cell length out of range: %d\n",
|
||||
__func__, len);
|
||||
kfree(buf);
|
||||
goto ret;
|
||||
}
|
||||
memcpy(&adsp_var_idx, buf, len);
|
||||
kfree(buf);
|
||||
va_disable = adsp_var_idx;
|
||||
|
|
|
|||
Loading…
Reference in a new issue