summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSaidiReddy Yenuga <saidir@codeaurora.org>2017-02-21 13:05:26 +0530
committerqcabuildsw <qcabuildsw@localhost>2017-03-05 11:44:36 -0800
commitd60a5839ba987e2c9d365fef950cae0c9ad11010 (patch)
treec28141c063bd311d380ffe8d9db680f7b704cf3c
parentf2000771095880eddb4797c3f20c20a1d0796d91 (diff)
qcacld-3.0: Trim operation classes to max supported in change station
qcacld-2.0 to qcacld-3.0 Propagation. Operation classes supported can be controlled by user, which can be sent greater than the max supported operations. This results in stack overflow in change station command. Add check to validate operations supported param given by user and if it exceeds max supported value, set it to max supported value. CRs-Fixed: 2002052 Change-Id: Idd3a35e38b091546a17d7ec6329f19429e5c289c
-rw-r--r--core/hdd/src/wlan_hdd_cfg80211.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/core/hdd/src/wlan_hdd_cfg80211.c b/core/hdd/src/wlan_hdd_cfg80211.c
index 2ac8896683ec..8f139192ad3c 100644
--- a/core/hdd/src/wlan_hdd_cfg80211.c
+++ b/core/hdd/src/wlan_hdd_cfg80211.c
@@ -10513,6 +10513,14 @@ static int __wlan_hdd_change_station(struct wiphy *wiphy,
hdd_notice("After removing duplcates StaParams.supported_channels_len: %d",
StaParams.supported_channels_len);
}
+ if (params->supported_oper_classes_len >
+ CDS_MAX_SUPP_OPER_CLASSES) {
+ hdd_notice("received oper classes:%d, resetting it to max supported: %d",
+ params->supported_oper_classes_len,
+ CDS_MAX_SUPP_OPER_CLASSES);
+ params->supported_oper_classes_len =
+ CDS_MAX_SUPP_OPER_CLASSES;
+ }
qdf_mem_copy(StaParams.supported_oper_classes,
params->supported_oper_classes,
params->supported_oper_classes_len);