From d3047b2ae01de0dd2c48244c19cab35d8c004da2 Mon Sep 17 00:00:00 2001 From: Aditya Bavanari Date: Wed, 22 Nov 2017 15:29:52 +0530 Subject: [PATCH] ipc: add validity check to APR port Add boundary checks for APR port received from ADSP. CRs-Fixed: 2143207 Change-Id: I9a7fa39ee223e1859323caa6eb74c1c8a26a041d Signed-off-by: Aditya Bavanari --- ipc/apr.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/ipc/apr.c b/ipc/apr.c index dd2a63bd70f3..d2029943dcd9 100644 --- a/ipc/apr.c +++ b/ipc/apr.c @@ -717,9 +717,10 @@ void apr_cb_func(void *buf, int len, void *priv) } temp_port = ((data.dest_port >> 8) * 8) + (data.dest_port & 0xFF); - pr_debug("port = %d t_port = %d\n", data.src_port, temp_port); - if (c_svc->port_cnt && c_svc->port_fn[temp_port]) - c_svc->port_fn[temp_port](&data, c_svc->port_priv[temp_port]); + if (((temp_port >= 0) && (temp_port < APR_MAX_PORTS)) + && (c_svc->port_cnt && c_svc->port_fn[temp_port])) + c_svc->port_fn[temp_port](&data, + c_svc->port_priv[temp_port]); else if (c_svc->fn) c_svc->fn(&data, c_svc->priv); else