From 17e749ce8bd4683f7a7c06b505cdf71d689862b0 Mon Sep 17 00:00:00 2001 From: Bapiraju Alla Date: Mon, 21 Dec 2020 23:49:41 +0530 Subject: [PATCH] qcacld-3.0: During WiFi turn on get hdd_ctx after driver load Currently while turning on WiFi, driver is getting hdd_ctx first and then waiting for driver load to complete. This may lead to use after free access if there is a probe fail during the driver load. To avoid this, get hdd_ctx after driver load is complete. Change-Id: I90132a3cf8eb8047d0854f781dbe968bccef94cf CRs-Fixed: 2839442 --- core/hdd/src/wlan_hdd_main.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/core/hdd/src/wlan_hdd_main.c b/core/hdd/src/wlan_hdd_main.c index c0d881a3723e..7a4ac4e22466 100644 --- a/core/hdd/src/wlan_hdd_main.c +++ b/core/hdd/src/wlan_hdd_main.c @@ -16011,7 +16011,7 @@ static ssize_t wlan_hdd_state_ctrl_param_write(struct file *filp, static const char wlan_on_str[] = "ON"; int ret; unsigned long rc; - struct hdd_context *hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD); + struct hdd_context *hdd_ctx; if (copy_from_user(buf, user_buf, 3)) { pr_err("Failed to read buffer\n"); @@ -16046,6 +16046,7 @@ static ssize_t wlan_hdd_state_ctrl_param_write(struct file *filp, * Flush idle shutdown work for cases to synchronize the wifi on * during the idle shutdown. */ + hdd_ctx = cds_get_context(QDF_MODULE_ID_HDD); if (hdd_ctx) hdd_psoc_idle_timer_stop(hdd_ctx);