diff --git a/drivers/net/wireless/qcacld-2.0/CORE/MAC/src/pe/sch/schBeaconGen.c b/drivers/net/wireless/qcacld-2.0/CORE/MAC/src/pe/sch/schBeaconGen.c index c8a01779ad85..12b56271e1e7 100644 --- a/drivers/net/wireless/qcacld-2.0/CORE/MAC/src/pe/sch/schBeaconGen.c +++ b/drivers/net/wireless/qcacld-2.0/CORE/MAC/src/pe/sch/schBeaconGen.c @@ -1,5 +1,5 @@ /* - * Copyright (c) 2012-2016 The Linux Foundation. All rights reserved. + * Copyright (c) 2012-2016, 2019 The Linux Foundation. All rights reserved. * * Previously licensed under the ISC license by Qualcomm Atheros, Inc. * @@ -810,6 +810,12 @@ void writeBeaconToMemory(tpAniSirGlobal pMac, tANI_U16 size, tANI_U16 length, tp // copy end of beacon only if length > 0 if (length > 0) { + if (size + psessionEntry->schBeaconOffsetEnd > SCH_MAX_BEACON_SIZE) { + schLog(pMac, LOGE, + FL("beacon template fail size %d BeaconOffsetEnd %d"), + size, psessionEntry->schBeaconOffsetEnd); + return; + } for (i=0; i < psessionEntry->schBeaconOffsetEnd; i++) psessionEntry->pSchBeaconFrameBegin[size++] = psessionEntry->pSchBeaconFrameEnd[i]; }