diff --git a/core/mac/src/pe/rrm/rrm_api.c b/core/mac/src/pe/rrm/rrm_api.c index 86a544e7a30e..8fb8ff0b2213 100644 --- a/core/mac/src/pe/rrm/rrm_api.c +++ b/core/mac/src/pe/rrm/rrm_api.c @@ -524,6 +524,13 @@ rrm_process_beacon_report_req(struct mac_context *mac, pe_info("maxDuration = %d sign = %d maxMeasduration = %d measDuration = %d", maxDuration, sign, maxMeasduration, measDuration); + if (measDuration == 0 && + pBeaconReq->measurement_request.Beacon.meas_mode != + eSIR_BEACON_TABLE) { + pe_err("Invalid measurement duration"); + return eRRM_REFUSED; + } + if (maxMeasduration < measDuration) { if (pBeaconReq->durationMandatory) { pe_err("Dropping the request: duration mandatory and maxduration > measduration");