Pārlūkot izejas kodu

qcacld-3.0: free keys for vdev when disconnect from AP

Free keys for vdev when disconnect from AP in STA mode,
otherwise, the keys may be used in the next connection, which will
result in connection failure.

CRs-Fixed: 2773040
Change-Id: I6d3e858cdc5b38b25a4431b9aaf5f2fc3e1019c7
Yu Wang 4 gadi atpakaļ
vecāks
revīzija
491f6bc603
1 mainītis faili ar 10 papildinājumiem un 0 dzēšanām
  1. 10 0
      core/hdd/src/wlan_hdd_assoc.c

+ 10 - 0
core/hdd/src/wlan_hdd_assoc.c

@@ -1828,6 +1828,7 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter,
 	struct wlan_ies disconnect_ies = {0};
 	bool from_ap = false;
 	uint32_t reason_code = 0;
+	struct wlan_objmgr_vdev *vdev;
 
 	if (!dev) {
 		hdd_err("net_dev is released return");
@@ -1957,6 +1958,15 @@ static QDF_STATUS hdd_dis_connect_handler(struct hdd_adapter *adapter,
 	mac_handle = hdd_ctx->mac_handle;
 	sme_ft_reset(mac_handle, adapter->vdev_id);
 	sme_reset_key(mac_handle, adapter->vdev_id);
+
+	if (adapter->device_mode == QDF_STA_MODE) {
+		vdev = hdd_objmgr_get_vdev(adapter);
+		if (vdev) {
+			wlan_crypto_free_vdev_key(vdev);
+			hdd_objmgr_put_vdev(vdev);
+		}
+	}
+
 	hdd_remove_beacon_filter(adapter);
 
 	if (sme_is_beacon_report_started(mac_handle, adapter->vdev_id)) {