summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorYingying Tang <yintang@codeaurora.org>2016-09-21 15:34:28 +0800
committerAnjaneedevi Kapparapu <akappa@codeaurora.org>2016-09-22 11:26:18 +0530
commitd8508a67fcaab14bd0a9cc795f19a92f7186cbf9 (patch)
tree000e2ed17dcb7069716f8a55553f531f1c11f672
parent8478bc2343f832ace281185083c67c784bcc6c5e (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.c2
-rw-r--r--CORE/HDD/src/wlan_hdd_scan.c10
-rw-r--r--CORE/HDD/src/wlan_hdd_wext.c25
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;