Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit d8864856 authored by Aditya Bavanari's avatar Aditya Bavanari
Browse files

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: default avatarAditya Bavanari <abavanar@codeaurora.org>
parent 127718f3
Loading
Loading
Loading
Loading
+7 −1
Original line number Diff line number Diff line
@@ -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;