summaryrefslogtreecommitdiff
path: root/core/utils
diff options
context:
space:
mode:
authorPoddar, Siddarth <siddpodd@codeaurora.org>2017-12-06 13:54:40 +0530
committersnandini <snandini@codeaurora.org>2017-12-07 06:28:58 -0800
commitaadc31d62eef359e00442ff2f6ce066ff1415c64 (patch)
tree3aefff42d27ead92e3bc3cb5279c8277993f6244 /core/utils
parent3535b8e76b0584b8472ac8aec42d0dcb36b3d7ea (diff)
qcacld-3.0: Fix potential buffer overflow in process_tx_info
Check for buffer overflow for pktlog messages in process_tx_info function before doing mem copy. Change-Id: I5d34bfdecb4fd9dad1741da2256873ef3e9e708c CRs-Fixed: 2152824
Diffstat (limited to 'core/utils')
-rw-r--r--core/utils/pktlog/pktlog_internal.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/core/utils/pktlog/pktlog_internal.c b/core/utils/pktlog/pktlog_internal.c
index c7d9d02df5fe..aae7d71c0049 100644
--- a/core/utils/pktlog/pktlog_internal.c
+++ b/core/utils/pktlog/pktlog_internal.c
@@ -520,6 +520,10 @@ A_STATUS process_tx_info(struct ol_txrx_pdev_t *txrx_pdev, void *data)
*/
txctl_log.priv.frm_hdr = frm_hdr;
qdf_assert(txctl_log.priv.txdesc_ctl);
+ qdf_assert(pl_hdr.size < sizeof(txctl_log.priv.txdesc_ctl));
+ pl_hdr.size = (pl_hdr.size > sizeof(txctl_log.priv.txdesc_ctl))
+ ? sizeof(txctl_log.priv.txdesc_ctl) :
+ pl_hdr.size;
qdf_mem_copy((void *)&txctl_log.priv.txdesc_ctl,
((void *)data + sizeof(struct ath_pktlog_hdr)),
pl_hdr.size);