Selaa lähdekoodia

msm: eva: Validate DSP buffer size

In case clients passing larger size than the actual dma-buf size.
It may avoid DSP caused SMMU fault.

Change-Id: I1f87d203f65a2d18d1a35e9e0b8dec281020150b
Signed-off-by: George Shen <[email protected]>
George Shen 1 vuosi sitten
vanhempi
sitoutus
2c6f9ca542
1 muutettua tiedostoa jossa 7 lisäystä ja 0 poistoa
  1. 7 0
      msm/eva/msm_cvp_buf.c

+ 7 - 0
msm/eva/msm_cvp_buf.c

@@ -304,6 +304,13 @@ int msm_cvp_map_buf_dsp(struct msm_cvp_inst *inst, struct eva_kmd_buffer *buf)
 		goto exit;
 	}
 
+	if (dma_buf->size < buf->size) {
+		dprintk(CVP_ERR, "%s DSP client buffer too large %d > %d\n",
+			__func__, buf->size, dma_buf->size);
+		rc =  -EINVAL;
+		goto exit;
+	}
+
 	dprintk(CVP_MEM, "dma_buf from internal %llu\n", dma_buf);
 
 	cbuf = cvp_kmem_cache_zalloc(&cvp_driver->buf_cache, GFP_KERNEL);