diff options
| author | Naveen Rawat <naveenrawat@codeaurora.org> | 2016-06-15 11:07:24 -0700 |
|---|---|---|
| committer | Nandini Suresh <snandini@codeaurora.org> | 2016-07-14 18:50:50 -0700 |
| commit | 696a930c25f7acbe5d14e68404b8e16a79ba30f8 (patch) | |
| tree | aecc1476aa33b611909af8abd5ab1acfa36d3cb3 | |
| parent | a395d25d534f5cd6818cfbc8faf6ea465aa899f2 (diff) | |
qcacld-3.0: Fix start BSS failure
In function csr_roam_join_handle_profile, add NULL pointer check for
"result" after call to csr_roam_select_bss rather than before
csr_roam_join_handle_profile, since it is called for BSS role as well.
Change-Id: I800891fd66d5c851537968515e43eadbe38a2ae8
CRs-Fixed: 1038237
| -rw-r--r-- | core/sme/src/csr/csr_api_roam.c | 20 |
1 files changed, 8 insertions, 12 deletions
diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index dadf022d33f8..a6e6cb86358a 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -5073,7 +5073,7 @@ static void csr_roam_join_handle_profile(tpAniSirGlobal mac_ctx, else ies_local = scan_result->Result.pvIes; - if (scan_result && !ies_local && + if (scan_result && !ies_local && result && (!QDF_IS_STATUS_SUCCESS( csr_get_parsed_bss_description_ies( mac_ctx, @@ -5083,20 +5083,22 @@ static void csr_roam_join_handle_profile(tpAniSirGlobal mac_ctx, *roam_state = eCsrStopRoaming; return; } - roam_info_ptr->pBssDesc = &result->BssDescriptor; + if (result) + roam_info_ptr->pBssDesc = &result->BssDescriptor; cmd->u.roamCmd.pLastRoamBss = roam_info_ptr->pBssDesc; /* dont put uapsd_mask if BSS doesn't support uAPSD */ if (scan_result && cmd->u.roamCmd.roamProfile.uapsd_mask && CSR_IS_QOS_BSS(ies_local) && CSR_IS_UAPSD_BSS(ies_local)) { #ifndef WLAN_MDM_CODE_REDUCTION_OPT - acm_mask = sme_qos_get_acm_mask(mac_ctx, + if (result) + acm_mask = sme_qos_get_acm_mask(mac_ctx, &result->BssDescriptor, ies_local); #endif /* WLAN_MDM_CODE_REDUCTION_OPT */ } else { cmd->u.roamCmd.roamProfile.uapsd_mask = 0; } - if (ies_local && !result->pvIes) + if (ies_local && result && !result->pvIes) qdf_mem_free(ies_local); roam_info_ptr->pProfile = profile; session->bRefAssocStartCnt++; @@ -5267,14 +5269,8 @@ static eCsrJoinState csr_roam_join_next_bss(tpAniSirGlobal mac_ctx, roam_info_ptr = &roam_info; roam_info_ptr->u.pConnectedProfile = &session->connectedProfile; - /* - * result will be null if passed pRoamBssEntry is NULL, which - * indicates we are done with all BSSs in list. - */ - if (result != NULL) - csr_roam_join_handle_profile(mac_ctx, session_id, cmd, - roam_info_ptr, &roam_state, - result, scan_result); + csr_roam_join_handle_profile(mac_ctx, session_id, cmd, roam_info_ptr, + &roam_state, result, scan_result); end: if ((eCsrStopRoaming == roam_state) && CSR_IS_INFRASTRUCTURE(profile) && (session->bRefAssocStartCnt > 0)) { |
