summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CORE/SME/src/csr/csrApiRoam.c11
-rw-r--r--CORE/SME/src/csr/csrNeighborRoam.c8
-rw-r--r--CORE/SME/src/csr/csrTdlsProcess.c4
-rw-r--r--CORE/SME/src/sme_common/sme_Api.c22
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,