Pārlūkot izejas kodu

Merge "dsp: q6voice: Check size of shared memory buffer before access"

Linux Build Service Account 6 gadi atpakaļ
vecāks
revīzija
ae8bc1e1f2
1 mainītis faili ar 5 papildinājumiem un 0 dzēšanām
  1. 5 0
      dsp/q6voice.c

+ 5 - 0
dsp/q6voice.c

@@ -7740,6 +7740,11 @@ static int32_t qdsp_cvs_callback(struct apr_client_data *data, void *priv)
 
 		cvs_voc_pkt = v->shmem_info.sh_buf.buf[1].data;
 		if (cvs_voc_pkt != NULL &&  common.mvs_info.ul_cb != NULL) {
+			if (v->shmem_info.sh_buf.buf[1].size <
+			    ((3 * sizeof(uint32_t)) + cvs_voc_pkt[2])) {
+				pr_err("%s: invalid voc pkt size\n", __func__);
+				return -EINVAL;
+			}
 			/* cvs_voc_pkt[0] contains tx timestamp */
 			common.mvs_info.ul_cb((uint8_t *)&cvs_voc_pkt[3],
 					      cvs_voc_pkt[2],