From 4d9c3f98062a445dda8355821cdc95cd39b74d66 Mon Sep 17 00:00:00 2001 From: psimha Date: Mon, 9 Apr 2018 15:27:08 -0700 Subject: [PATCH] qcacmn: Add sanity checks before retrieving rx_desc Add sanity checks for pool id & index extracted from the SW cookie field within buf_addr_info. Change-Id: Icf21b94fa05f6f8887b8c7a17896348f25436dda CRs-Fixed: 2220030 --- dp/wifi3.0/dp_rx.h | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/dp/wifi3.0/dp_rx.h b/dp/wifi3.0/dp_rx.h index 7d616332cd30..aa97eb9fec8c 100644 --- a/dp/wifi3.0/dp_rx.h +++ b/dp/wifi3.0/dp_rx.h @@ -247,8 +247,16 @@ void *dp_rx_cookie_2_va_rxdma_buf(struct dp_soc *soc, uint32_t cookie) { uint8_t pool_id = DP_RX_DESC_COOKIE_POOL_ID_GET(cookie); uint16_t index = DP_RX_DESC_COOKIE_INDEX_GET(cookie); - /* TODO */ - /* Add sanity for pool_id & index */ + struct rx_desc_pool *rx_desc_pool; + + if (qdf_unlikely(pool_id >= MAX_RXDESC_POOLS)) + return NULL; + + rx_desc_pool = &soc->rx_desc_buf[pool_id]; + + if (qdf_unlikely(index >= rx_desc_pool->pool_size)) + return NULL; + return &(soc->rx_desc_buf[pool_id].array[index].rx_desc); }