summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2021-01-06 11:27:07 -0800
committerGerrit - the friendly Code Review server <code-review@localhost>2021-01-06 11:27:07 -0800
commitd13f712297a8a752479ad1b0a52becb662af2247 (patch)
treec638fcfe3ba455d7d7b1d8f11860b241fdc2201f
parentaeff453291edb96372a64f642b82a476cad392e2 (diff)
parentd82d4b1fc7fabc2e720f29d461cdba8f1def4223 (diff)
Merge "qcacld-3.0: Fix integer overflow in rrm_fill_beacon_ies()"
-rw-r--r--core/mac/src/pe/rrm/rrm_api.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/core/mac/src/pe/rrm/rrm_api.c b/core/mac/src/pe/rrm/rrm_api.c
index 00142a4a6f28..e600d1efd47b 100644
--- a/core/mac/src/pe/rrm/rrm_api.c
+++ b/core/mac/src/pe/rrm/rrm_api.c
@@ -747,12 +747,19 @@ rrm_fill_beacon_ies(tpAniSirGlobal pMac,
}
while (BcnNumIes > 0) {
- len = *(pBcnIes + 1) + 2; /* element id + length. */
+ len = *(pBcnIes + 1);
+ len += 2; /* element id + length. */
pe_debug("EID = %d, len = %d total = %d",
*pBcnIes, *(pBcnIes + 1), len);
- if (!len) {
- pe_err("Invalid length");
+ if (BcnNumIes < len) {
+ pe_err("RRM: Invalid IE len:%d exp_len:%d",
+ len, BcnNumIes);
+ break;
+ }
+
+ if (len <= 2) {
+ pe_err("RRM: Invalid IE");
break;
}