瀏覽代碼

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)) {