diff options
| author | Hanumantha Reddy Pothula <c_hpothu@qti.qualcomm.com> | 2015-05-13 15:40:33 -0700 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2015-06-21 20:40:53 +0530 |
| commit | 6e0703b2cc5aab43d4eaf28cbe39b4882e0d5798 (patch) | |
| tree | 8b7c935c3062bd8de5dae5f248f4d26efa37f89a | |
| parent | dbb53f2768a75c6166a9e0bc84622b3832a7bee2 (diff) | |
qcacld: HDD: Validate adapter's magic number in callbacks
prima to qcacld-2.0 propagation
Before accessing adapter context, validate adapter's magic number
along with NULL check to confirm that instance of adapter context
is valid
Change-Id: I3a5d2b79cf0a4e0d938df144546508c52db1154e
CRs-Fixed: 837808
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_softap_tx_rx.c | 6 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_tx_rx.c | 23 |
2 files changed, 9 insertions, 20 deletions
diff --git a/CORE/HDD/src/wlan_hdd_softap_tx_rx.c b/CORE/HDD/src/wlan_hdd_softap_tx_rx.c index fa9984469312..2ac0026ec19a 100644 --- a/CORE/HDD/src/wlan_hdd_softap_tx_rx.c +++ b/CORE/HDD/src/wlan_hdd_softap_tx_rx.c @@ -1015,10 +1015,8 @@ VOS_STATUS hdd_softap_tx_low_resource_cbk( vos_pkt_t *pVosPacket, hdd_adapter_t* pAdapter = (hdd_adapter_t *)userData; v_U8_t STAId = WLAN_MAX_STA_COUNT; - if(pAdapter == NULL) - { - VOS_TRACE( VOS_MODULE_ID_HDD_SAP_DATA, VOS_TRACE_LEVEL_ERROR, - "%s: HDD adapter context is Null", __func__); + if ((pAdapter == NULL) || (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)) { + hddLog(LOGE, FL("Invalid adapter %p"), pAdapter); return VOS_STATUS_E_FAILURE; } diff --git a/CORE/HDD/src/wlan_hdd_tx_rx.c b/CORE/HDD/src/wlan_hdd_tx_rx.c index b54989816c59..1ac4cca5f6da 100644 --- a/CORE/HDD/src/wlan_hdd_tx_rx.c +++ b/CORE/HDD/src/wlan_hdd_tx_rx.c @@ -1310,15 +1310,10 @@ VOS_STATUS hdd_tx_complete_cbk( v_VOID_t *vosContext, pHddCtx = (hdd_context_t *)vos_get_context( VOS_MODULE_ID_HDD, vosContext ); //Get the Adapter context. pAdapter = hdd_get_adapter(pHddCtx,WLAN_HDD_INFRA_STATION); - if(pAdapter == NULL) - { - VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, - "%s: HDD adapter context is Null", __func__); - } + if((pAdapter == NULL) || (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)) + hddLog(LOG1, FL("Invalid adapter %p"), pAdapter); else - { ++pAdapter->hdd_stats.hddTxRxStats.txCompleted; - } kfree_skb((struct sk_buff *)pOsPkt); @@ -1388,10 +1383,8 @@ VOS_STATUS hdd_tx_fetch_packet_cbk( v_VOID_t *vosContext, } pAdapter = pHddCtx->sta_to_adapter[*pStaId]; - if ((NULL == pAdapter) || (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)) - { - VOS_TRACE( VOS_MODULE_ID_HDD_DATA, VOS_TRACE_LEVEL_ERROR, - FL("pAdapter is NULL %u"), *pStaId); + if ((NULL == pAdapter) || (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)) { + hddLog(LOGE, FL("Invalid adapter %p staId %u"), pAdapter, *pStaId); VOS_ASSERT(0); return VOS_STATUS_E_FAILURE; } @@ -1702,10 +1695,8 @@ VOS_STATUS hdd_tx_low_resource_cbk( vos_pkt_t *pVosPacket, v_SIZE_t size = 0; hdd_adapter_t* pAdapter = (hdd_adapter_t *)userData; - if (NULL == pAdapter) - { - VOS_TRACE( VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_ERROR, - "%s: HDD adapter context is Null", __func__); + if ((NULL == pAdapter) || (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)) { + hddLog(LOGE, FL("Invalid adpater %p"), pAdapter); return VOS_STATUS_E_FAILURE; } @@ -1805,7 +1796,7 @@ VOS_STATUS hdd_rx_packet_cbk(v_VOID_t *vosContext, pAdapter = pHddCtx->sta_to_adapter[staId]; if ((NULL == pAdapter) || (WLAN_HDD_ADAPTER_MAGIC != pAdapter->magic)) { - hddLog(LOGE, FL("invalid adapter or adapter has invalid magic")); + hddLog(LOGE, FL("invalid adapter %p for sta Id %d"), pAdapter, staId); return VOS_STATUS_E_FAILURE; } |
