ソースを参照

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 年 前
コミット
491f6bc603
1 ファイル変更10 行追加0 行削除
  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)) {