From 4f8e207a80ef009f0f0b999ba754c1dfae990d62 Mon Sep 17 00:00:00 2001 From: Ashish Kumar Dhanotiya Date: Tue, 28 Apr 2020 11:48:32 +0530 Subject: [PATCH] qcacld-3.0: Validate mac context in csr_get_peer_rssi_cb Currently mac context is validated in csr_get_peer_rssi_cb but even in case of invalid mac context it is dereferenced. Add a check to validate the mac context and gracefully return in case of invalid address Change-Id: I96181e7ecd7be1a18e644f9499137a42e6af6372 CRs-Fixed: 2673557 --- core/sme/src/csr/csr_api_roam.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/core/sme/src/csr/csr_api_roam.c b/core/sme/src/csr/csr_api_roam.c index 23ff282cd5a2..707bfa75d336 100644 --- a/core/sme/src/csr/csr_api_roam.c +++ b/core/sme/src/csr/csr_api_roam.c @@ -6338,12 +6338,16 @@ static void csr_get_peer_rssi_cb(struct stats_event *ev, void *cookie) { struct mac_context *mac = (struct mac_context *)cookie; - if (!mac) - goto disconnect_stats_complete; + if (!mac) { + sme_err("Invalid mac ctx"); + return; + } + if (!ev->peer_stats) { sme_debug("%s no peer stats\n", __func__); goto disconnect_stats_complete; } + mac->peer_rssi = ev->peer_stats->peer_rssi; mac->peer_txrate = ev->peer_stats->tx_rate; mac->peer_rxrate = ev->peer_stats->rx_rate;