summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authoryeshwanth sriram guntuka <ysriramg@codeaurora.org>2017-07-26 11:09:20 +0530
committersnandini <snandini@codeaurora.org>2017-08-10 03:29:10 -0700
commitdf166cf41f61168351a187b9cb97cb1526560c97 (patch)
treebf1b94696248366a4d54aa11c1da47bc99fa9c0e
parent9358b9e58f1281f59f36df320b8fb3590e28d06c (diff)
qcacld-3.0: Fix kernel memory corruption
Buffer overflow in ConvertQosMapsetFrame function when num_dscp_exceptions value is less than 16. Fix is to return from function if num_dscp_exceptions is less than 16. Change-Id: I2fcce60b7fe5e988348cee786e9a4d493d9512fe CRs-Fixed: 2086305
-rw-r--r--core/mac/src/sys/legacy/src/utils/src/utils_parser.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/core/mac/src/sys/legacy/src/utils/src/utils_parser.c b/core/mac/src/sys/legacy/src/utils/src/utils_parser.c
index 5c0bb3d6dd3d..27835d215af2 100644
--- a/core/mac/src/sys/legacy/src/utils/src/utils_parser.c
+++ b/core/mac/src/sys/legacy/src/utils/src/utils_parser.c
@@ -712,6 +712,8 @@ void convert_qos_mapset_frame(tpAniSirGlobal pMac, tSirQosMapSet *Qos,
dot11_dscp_sz = sizeof(dot11fIE->dscp_exceptions);
if (dot11fIE->num_dscp_exceptions > QOS_MAP_LEN_MAX)
dot11fIE->num_dscp_exceptions = QOS_MAP_LEN_MAX;
+ if (dot11fIE->num_dscp_exceptions < QOS_MAP_LEN_MIN)
+ return;
Qos->num_dscp_exceptions =
(dot11fIE->num_dscp_exceptions - QOS_MAP_LEN_MIN) / 2;