diff --git a/components/tdls/core/src/wlan_tdls_ct.c b/components/tdls/core/src/wlan_tdls_ct.c index 63d8a6994c42..a5be99a604b2 100644 --- a/components/tdls/core/src/wlan_tdls_ct.c +++ b/components/tdls/core/src/wlan_tdls_ct.c @@ -1151,18 +1151,18 @@ QDF_STATUS tdls_delete_all_tdls_peers(struct wlan_objmgr_vdev *vdev, struct scheduler_msg msg = {0}; QDF_STATUS status; + peer = wlan_vdev_get_bsspeer(vdev); + if (!peer) + return QDF_STATUS_E_FAILURE; + + if (QDF_STATUS_SUCCESS != + wlan_objmgr_peer_try_get_ref(peer, WLAN_TDLS_SB_ID)) + return QDF_STATUS_E_FAILURE; del_msg = qdf_mem_malloc(sizeof(*del_msg)); - if (NULL == del_msg) { + if (!del_msg) { tdls_err("memory alloc failed"); - return QDF_STATUS_E_FAILURE; - } - qdf_mem_zero(del_msg, sizeof(*del_msg)); - - peer = wlan_vdev_get_bsspeer(vdev); - if (QDF_STATUS_SUCCESS != wlan_objmgr_peer_try_get_ref(peer, - WLAN_TDLS_SB_ID)) { - qdf_mem_free(del_msg); + wlan_objmgr_peer_release_ref(peer, WLAN_TDLS_SB_ID); return QDF_STATUS_E_FAILURE; }