diff options
| -rw-r--r-- | CORE/SME/src/csr/csrApiRoam.c | 11 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrNeighborRoam.c | 8 | ||||
| -rw-r--r-- | CORE/SME/src/csr/csrTdlsProcess.c | 4 | ||||
| -rw-r--r-- | CORE/SME/src/sme_common/sme_Api.c | 22 |
4 files changed, 33 insertions, 12 deletions
diff --git a/CORE/SME/src/csr/csrApiRoam.c b/CORE/SME/src/csr/csrApiRoam.c index 896ff1cc080a..115d372ccf1b 100644 --- a/CORE/SME/src/csr/csrApiRoam.c +++ b/CORE/SME/src/csr/csrApiRoam.c @@ -11592,13 +11592,13 @@ static void csrRoamGetBssStartParmsFromBssDesc( tpAniSirGlobal pMac, tSirBssDesc if (pIes->ExtSuppRates.present) { pParam->extendedRateSet.numRates = pIes->ExtSuppRates.num_rates; - if(pIes->ExtSuppRates.num_rates > SIR_MAC_EXTENDED_RATE_EID_MAX) + if(pIes->ExtSuppRates.num_rates > SIR_MAC_RATESET_EID_MAX) { smsLog(pMac, LOGE, FL("num_rates :%d is more than \ SIR_MAC_RATESET_EID_MAX, resetting to \ SIR_MAC_RATESET_EID_MAX"), pIes->ExtSuppRates.num_rates); - pIes->ExtSuppRates.num_rates = SIR_MAC_EXTENDED_RATE_EID_MAX; + pIes->ExtSuppRates.num_rates = SIR_MAC_RATESET_EID_MAX; } vos_mem_copy(pParam->extendedRateSet.rate, pIes->ExtSuppRates.rates, @@ -15967,8 +15967,15 @@ eHalStatus csrRoamOffloadScan(tpAniSirGlobal pMac, tANI_U8 command, tANI_U8 reas #endif for (i = 0, j = 0; i < pRequestBuf->ConnectedNetwork.ChannelCount; i++) { + if (j < sizeof(ChannelCacheStr)) + { j += snprintf(ChannelCacheStr + j, sizeof(ChannelCacheStr) - j," %d", pRequestBuf->ConnectedNetwork.ChannelCache[i]); + } + else + { + break; + } } VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, "ChnlCacheType:%d, No of Chnls:%d,Channels: %s", diff --git a/CORE/SME/src/csr/csrNeighborRoam.c b/CORE/SME/src/csr/csrNeighborRoam.c index 5841e665f3f0..17affe15b009 100644 --- a/CORE/SME/src/csr/csrNeighborRoam.c +++ b/CORE/SME/src/csr/csrNeighborRoam.c @@ -3852,6 +3852,10 @@ VOS_STATUS csrNeighborRoamTransitToCFGChanScan(tpAniSirGlobal pMac) channelList, &numOfChannels); } + if (numOfChannels > WNI_CFG_VALID_CHANNEL_LIST_LEN) + { + numOfChannels = WNI_CFG_VALID_CHANNEL_LIST_LEN; + } currChannelListInfo->ChannelList = vos_mem_malloc(numOfChannels*sizeof(tANI_U8)); @@ -3865,10 +3869,6 @@ VOS_STATUS csrNeighborRoamTransitToCFGChanScan(tpAniSirGlobal pMac) vos_mem_copy(currChannelListInfo->ChannelList, channelList, numOfChannels * sizeof(tANI_U8)); #else - if (numOfChannels > WNI_CFG_VALID_CHANNEL_LIST_LEN) - { - numOfChannels = WNI_CFG_VALID_CHANNEL_LIST_LEN; - } vos_mem_copy(currChannelListInfo->ChannelList, (tANI_U8 *)pMac->roam.validChannelList, numOfChannels * sizeof(tANI_U8)); diff --git a/CORE/SME/src/csr/csrTdlsProcess.c b/CORE/SME/src/csr/csrTdlsProcess.c index 86c28ac9c697..0eb44719ea27 100644 --- a/CORE/SME/src/csr/csrTdlsProcess.c +++ b/CORE/SME/src/csr/csrTdlsProcess.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2013 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2014 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -170,7 +170,7 @@ eHalStatus csrTdlsChangePeerSta(tHalHandle hHal, tANI_U8 sessionId, tSirMacAddr //If connected and in Infra. Only then allow this if (CSR_IS_SESSION_VALID( pMac, sessionId ) && csrIsConnStateConnectedInfra( pMac, sessionId ) && - (NULL != peerMac)){ + (NULL != peerMac) && (NULL != pstaParams)) { tdlsAddStaCmd = csrGetCommandBuffer(pMac) ; diff --git a/CORE/SME/src/sme_common/sme_Api.c b/CORE/SME/src/sme_common/sme_Api.c index e781723ecff8..3eccc684e83b 100644 --- a/CORE/SME/src/sme_common/sme_Api.c +++ b/CORE/SME/src/sme_common/sme_Api.c @@ -9960,8 +9960,15 @@ eHalStatus sme_ChangeRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList, { for (i = 0; i < pNeighborRoamInfo->cfgParams.channelInfo.numOfChannels; i++) { - j += snprintf(oldChannelList + j, sizeof(oldChannelList) - j," %d", - pNeighborRoamInfo->cfgParams.channelInfo.ChannelList[i]); + if (j < sizeof(oldChannelList)) + { + j += snprintf(oldChannelList + j, sizeof(oldChannelList) - j," %d", + pNeighborRoamInfo->cfgParams.channelInfo.ChannelList[i]); + } + else + { + break; + } } } csrFlushCfgBgScanRoamChannelList(pMac); @@ -9972,8 +9979,15 @@ eHalStatus sme_ChangeRoamScanChannelList(tHalHandle hHal, tANI_U8 *pChannelList, j = 0; for (i = 0; i < pNeighborRoamInfo->cfgParams.channelInfo.numOfChannels; i++) { - j += snprintf(newChannelList + j, sizeof(newChannelList) - j," %d", - pNeighborRoamInfo->cfgParams.channelInfo.ChannelList[i]); + if (j < sizeof(newChannelList)) + { + j += snprintf(newChannelList + j, sizeof(newChannelList) - j," %d", + pNeighborRoamInfo->cfgParams.channelInfo.ChannelList[i]); + } + else + { + break; + } } } VOS_TRACE(VOS_MODULE_ID_SME, VOS_TRACE_LEVEL_DEBUG, |
