From 137b54e9f556baeb72cd1427ba85b51bb010c86f Mon Sep 17 00:00:00 2001 From: Deepak Dhamdhere Date: Tue, 24 Jan 2017 01:05:43 -0800 Subject: [PATCH] qcacld-3.0: Fix memory references in wma_remove_peer() Check for NULL values of peer and peer_map_addr before dereferencing. Move the debug print statement before peer is detached and peer object is freed. CRs-Fixed: 1115011 Change-Id: I00d547847eed8e24a01178390b9a62be0b9b75d7 --- core/wma/src/wma_dev_if.c | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/core/wma/src/wma_dev_if.c b/core/wma/src/wma_dev_if.c index b8d0024ee7..c18df48add 100644 --- a/core/wma/src/wma_dev_if.c +++ b/core/wma/src/wma_dev_if.c @@ -1232,6 +1232,10 @@ void wma_remove_peer(tp_wma_handle wma, uint8_t *bssid, vdev_id); peer_detach: + WMA_LOGE("%s: Remove peer %p with peer_addr %pM vdevid %d peer_count %d", + __func__, peer, bssid, vdev_id, + wma->interfaces[vdev_id].peer_count); + if (peer) { if (roam_synch_in_progress) cdp_peer_detach_force_delete(soc, peer); @@ -1240,9 +1244,6 @@ peer_detach: } wma->interfaces[vdev_id].peer_count--; - WMA_LOGE("%s: Removed peer %p with peer_addr %pM vdevid %d peer_count %d", - __func__, peer, bssid, vdev_id, - wma->interfaces[vdev_id].peer_count); #undef PEER_ALL_TID_BITMASK }