Pārlūkot izejas kodu

Merge "dsp: Fix a memory leak issue when nvmem read returns invalid length"

qctecmdr 4 gadi atpakaļ
vecāks
revīzija
b6aaedd76e
1 mainītis faili ar 7 papildinājumiem un 1 dzēšanām
  1. 7 1
      dsp/adsp-loader.c

+ 7 - 1
dsp/adsp-loader.c

@@ -388,10 +388,16 @@ static int adsp_loader_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(u32)) {
+	if (IS_ERR_OR_NULL(buf)) {
 		dev_dbg(&pdev->dev, "%s: FAILED to read nvmem cell \n", __func__);
 		goto wqueue;
 	}
+	if (len <= 0 || len > sizeof(u32)) {
+		dev_dbg(&pdev->dev, "%s: nvmem cell length out of range: %d\n",
+			__func__, len);
+		kfree(buf);
+		goto wqueue;
+	}
 	memcpy(&adsp_var_idx, buf, len);
 	kfree(buf);