diff options
| author | Yingying Tang <yintang@codeaurora.org> | 2016-09-21 15:34:28 +0800 |
|---|---|---|
| committer | Anjaneedevi Kapparapu <akappa@codeaurora.org> | 2016-09-22 11:26:18 +0530 |
| commit | d8508a67fcaab14bd0a9cc795f19a92f7186cbf9 (patch) | |
| tree | 000e2ed17dcb7069716f8a55553f531f1c11f672 | |
| parent | 8478bc2343f832ace281185083c67c784bcc6c5e (diff) | |
qcacld-2.0: Fix incorrect NULL pointer check for HDD layer
Currently there are some places where array name is compared to NULL
in HDD. Add fix to correct it.
CRs-Fixed: 1063255
Change-Id: Ic8b6ce003a918890bae6d9c81f6732472333528e
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_cfg80211.c | 2 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_scan.c | 10 | ||||
| -rw-r--r-- | CORE/HDD/src/wlan_hdd_wext.c | 25 |
3 files changed, 14 insertions, 23 deletions
diff --git a/CORE/HDD/src/wlan_hdd_cfg80211.c b/CORE/HDD/src/wlan_hdd_cfg80211.c index cff18eca64a5..51ed3d854cb8 100644 --- a/CORE/HDD/src/wlan_hdd_cfg80211.c +++ b/CORE/HDD/src/wlan_hdd_cfg80211.c @@ -17152,7 +17152,7 @@ static int wlan_hdd_cfg80211_update_bss( struct wiphy *wiphy, * fg80211_inform_bss_frame. * */ - if(is_p2p_scan && (pScanResult->ssId.ssId != NULL) && + if (is_p2p_scan && (pScanResult->ssId.length >= 7) && !vos_mem_compare( pScanResult->ssId.ssId, "DIRECT-", 7) ) { pScanResult = sme_ScanResultGetNext(hHal, pResult); diff --git a/CORE/HDD/src/wlan_hdd_scan.c b/CORE/HDD/src/wlan_hdd_scan.c index 5388421ec2de..2c57f9f8f054 100644 --- a/CORE/HDD/src/wlan_hdd_scan.c +++ b/CORE/HDD/src/wlan_hdd_scan.c @@ -720,8 +720,9 @@ static int __iw_set_scan(struct net_device *dev, struct iw_request_info *info, } /* push addIEScan in scanRequset if exist */ - if (pAdapter->scan_info.scanAddIE.addIEdata && - pAdapter->scan_info.scanAddIE.length) + if (pAdapter->scan_info.scanAddIE.length && + (pAdapter->scan_info.scanAddIE.length <= + sizeof(pAdapter->scan_info.scanAddIE.addIEdata))) { scanRequest.uIEFieldLen = pAdapter->scan_info.scanAddIE.length; scanRequest.pIEField = pAdapter->scan_info.scanAddIE.addIEdata; @@ -1132,8 +1133,9 @@ int iw_set_cscan(struct net_device *dev, struct iw_request_info *info, } /* push addIEScan in scanRequset if exist */ - if (pAdapter->scan_info.scanAddIE.addIEdata && - pAdapter->scan_info.scanAddIE.length) + if (pAdapter->scan_info.scanAddIE.length && + (pAdapter->scan_info.scanAddIE.length <= + sizeof(pAdapter->scan_info.scanAddIE.addIEdata))) { scanRequest.uIEFieldLen = pAdapter->scan_info.scanAddIE.length; scanRequest.pIEField = pAdapter->scan_info.scanAddIE.addIEdata; diff --git a/CORE/HDD/src/wlan_hdd_wext.c b/CORE/HDD/src/wlan_hdd_wext.c index 052f191b277b..5f40c7d21c1f 100644 --- a/CORE/HDD/src/wlan_hdd_wext.c +++ b/CORE/HDD/src/wlan_hdd_wext.c @@ -1586,12 +1586,8 @@ void hdd_clearRoamProfileIe( hdd_adapter_t *pAdapter) pWextState->authKeyMgmt = 0; for (i=0; i < CSR_MAX_NUM_KEY; i++) - { - if (pWextState->roamProfile.Keys.KeyMaterial[i]) - { - pWextState->roamProfile.Keys.KeyLength[i] = 0; - } - } + pWextState->roamProfile.Keys.KeyLength[i] = 0; + #ifdef FEATURE_WLAN_WAPI pAdapter->wapi_info.wapiAuthMode = WAPI_AUTH_MODE_OPEN; pAdapter->wapi_info.nWapiMode = 0; @@ -3016,14 +3012,10 @@ static int __iw_get_encode(struct net_device *dev, struct iw_request_info *info, for(i=0; i < MAX_WEP_KEYS; i++) { - if(pRoamProfile->Keys.KeyMaterial[i] == NULL) - { + if (pRoamProfile->Keys.KeyLength[i] == 0) continue; - } else - { break; - } } if(MAX_WEP_KEYS == i) @@ -4526,11 +4518,8 @@ static int __iw_set_encode(struct net_device *dev,struct iw_request_info *info, VOS_TRACE(VOS_MODULE_ID_HDD, VOS_TRACE_LEVEL_INFO, "****iwconfig wlan0 key off*****"); if(!fKeyPresent) { - for(i=0;i < CSR_MAX_NUM_KEY; i++) { - - if(pWextState->roamProfile.Keys.KeyMaterial[i]) + for(i=0;i < CSR_MAX_NUM_KEY; i++) pWextState->roamProfile.Keys.KeyLength[i] = 0; - } } pHddStaCtx->conn_info.authType = eCSR_AUTH_TYPE_OPEN_SYSTEM; pWextState->wpaVersion = IW_AUTH_WPA_VERSION_DISABLED; @@ -4707,7 +4696,7 @@ static int __iw_get_encodeext(struct net_device *dev, for(i=0; i < MAX_WEP_KEYS; i++) { - if(pRoamProfile->Keys.KeyMaterial[i] == NULL) + if (pRoamProfile->Keys.KeyLength[i] == 0) { continue; } @@ -4830,8 +4819,8 @@ static int __iw_set_encodeext(struct net_device *dev, } else { /*Static wep, update the roam profile with the keys */ - if(ext->key && (ext->key_len <= eCSR_SECURITY_WEP_KEYSIZE_MAX_BYTES) && - key_index < CSR_MAX_NUM_KEY) { + if ((ext->key_len <= eCSR_SECURITY_WEP_KEYSIZE_MAX_BYTES) && + (key_index < CSR_MAX_NUM_KEY)) { vos_mem_copy(&pRoamProfile->Keys.KeyMaterial[key_index][0],ext->key,ext->key_len); pRoamProfile->Keys.KeyLength[key_index] = (v_U8_t)ext->key_len; |
