qcacmn: Fix pointer dereference after memory free

The pointer to peer is dereferenced after memory free in peer
_unref_delete function. Fix the issue by changing function
call sequence.

CRs-Fixed: 2167698
Change-Id: Iebd8f958bde4964c16a3c312d037e8f06e319350
Este commit está contenido en:
chenguo
2018-01-08 14:51:44 +08:00
cometido por snandini
padre 5319334966
commit 1dead6f99e

Ver fichero

@@ -3683,6 +3683,11 @@ void dp_peer_unref_delete(void *peer_handle)
} else {
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
}
if (soc->cdp_soc.ol_ops->peer_unref_delete) {
soc->cdp_soc.ol_ops->peer_unref_delete(pdev->osif_pdev,
vdev->vdev_id, peer->mac_addr.raw);
}
#ifdef notyet
qdf_mempool_free(soc->osdev, soc->mempool_ol_ath_peer, peer);
#else
@@ -3695,11 +3700,6 @@ void dp_peer_unref_delete(void *peer_handle)
free_peer:
qdf_mem_free(peer);
#endif
if (soc->cdp_soc.ol_ops->peer_unref_delete) {
soc->cdp_soc.ol_ops->peer_unref_delete(pdev->osif_pdev,
vdev->vdev_id, peer->mac_addr.raw);
}
} else {
qdf_spin_unlock_bh(&soc->peer_ref_mutex);
}