diff options
| author | Poddar, Siddarth <siddpodd@codeaurora.org> | 2017-12-06 13:54:40 +0530 |
|---|---|---|
| committer | snandini <snandini@codeaurora.org> | 2017-12-07 06:28:58 -0800 |
| commit | aadc31d62eef359e00442ff2f6ce066ff1415c64 (patch) | |
| tree | 3aefff42d27ead92e3bc3cb5279c8277993f6244 /core/utils | |
| parent | 3535b8e76b0584b8472ac8aec42d0dcb36b3d7ea (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.c | 4 |
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); |
