|
@@ -736,7 +736,12 @@ util_scan_parse_rnr_ie(struct scan_cache_entry *scan_entry,
|
|
|
scm_debug("tbtt_count %d, tbtt_length %d, fieldtype %d",
|
|
|
tbtt_count, tbtt_length, fieldtype);
|
|
|
data += sizeof(struct neighbor_ap_info_field);
|
|
|
- for (i = 0; i < (tbtt_count + 1) ; i++) {
|
|
|
+
|
|
|
+ if (tbtt_count > TBTT_INFO_COUNT)
|
|
|
+ break;
|
|
|
+
|
|
|
+ for (i = 0; i < (tbtt_count + 1) &&
|
|
|
+ data < ((uint8_t *)ie + rnr_ie_len + 2); i++) {
|
|
|
if (i < MAX_RNR_BSS)
|
|
|
util_scan_update_rnr(
|
|
|
&scan_entry->rnr.bss_info[i],
|