summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/hdd/src/wlan_hdd_ext_scan.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_ext_scan.c b/core/hdd/src/wlan_hdd_ext_scan.c
index defad2bc96c8..570567005e15 100644
--- a/core/hdd/src/wlan_hdd_ext_scan.c
+++ b/core/hdd/src/wlan_hdd_ext_scan.c
@@ -3770,11 +3770,19 @@ static int hdd_extscan_epno_fill_network_list(
struct nlattr *networks;
int rem1, ssid_len;
uint8_t index, *ssid;
+ uint32_t expected_networks;
+ expected_networks = req_msg->num_networks;
index = 0;
nla_for_each_nested(networks,
tb[QCA_WLAN_VENDOR_ATTR_PNO_SET_LIST_PARAM_EPNO_NETWORKS_LIST],
rem1) {
+
+ if (index == expected_networks) {
+ hdd_warn("ignoring excess networks");
+ break;
+ }
+
if (nla_parse(network, QCA_WLAN_VENDOR_ATTR_PNO_MAX,
nla_data(networks), nla_len(networks),
wlan_hdd_pno_config_policy)) {
@@ -3829,6 +3837,7 @@ static int hdd_extscan_epno_fill_network_list(
index++;
}
+ req_msg->num_networks = index;
return 0;
}