Quellcode durchsuchen

qcacld-3.0: Do not use peer to get vdev

When we receive disassoc from peer, peer will be deleted from hash
table. If driver again receives one more disassoc from same peer
because of any reason, NULL pointer dereference will occur.

To address this do not use peer to get vdev, use pkt_capture_get_vdev
to get vdev.

CRs-Fixed: 2771670
Change-Id: I5bf7b5edff0e1c6b0b73f0c3849c897b269eef4c
Vulupala Shashank Reddy vor 4 Jahren
Ursprung
Commit
589f121df7
1 geänderte Dateien mit 3 neuen und 1 gelöschten Zeilen
  1. 3 1
      components/pkt_capture/core/src/wlan_pkt_capture_mgmt_txrx.c

+ 3 - 1
components/pkt_capture/core/src/wlan_pkt_capture_mgmt_txrx.c

@@ -430,6 +430,7 @@ pkt_capture_mgmt_rx_data_cb(struct wlan_objmgr_psoc *psoc,
 	tpSirMacFrameCtl pfc;
 	qdf_nbuf_t nbuf;
 	int buf_len;
+	struct wlan_objmgr_vdev *vdev;
 
 	if (!(pkt_capture_get_pktcap_mode(psoc) & PKT_CAPTURE_MODE_MGMT_ONLY)) {
 		qdf_nbuf_free(wbuf);
@@ -459,7 +460,8 @@ pkt_capture_mgmt_rx_data_cb(struct wlan_objmgr_psoc *psoc,
 	     pfc->subType == SIR_MAC_MGMT_ACTION)) {
 		struct wlan_objmgr_pdev *pdev;
 
-		pdev = wlan_vdev_get_pdev(peer->peer_objmgr.vdev);
+		vdev = pkt_capture_get_vdev();
+		pdev = wlan_vdev_get_pdev(vdev);
 		if (pkt_capture_is_rmf_enabled(pdev, psoc, wh->i_addr1)) {
 			QDF_STATUS status;