From 30d6c8401cd7be3fdfac937ff9f959f1afded72b Mon Sep 17 00:00:00 2001 From: Axel Lin Date: Wed, 7 Jul 2021 08:17:49 +0800 Subject: [PATCH] wpa_supplicant: Fix memory leak in esp_issue_scan error paths Fix memory leak when allocate memory for params->ssid / params->bssid fails. Fixes: 27101f94546b ("wpa_supplicant: Add initial roaming support") Signed-off-by: Axel Lin Signed-off-by: Sagar Bijwe Merges https://github.com/espressif/esp-idf/pull/7240 --- components/wpa_supplicant/src/esp_supplicant/esp_scan.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/components/wpa_supplicant/src/esp_supplicant/esp_scan.c b/components/wpa_supplicant/src/esp_supplicant/esp_scan.c index b63b52b9d7..2abfafb8c2 100644 --- a/components/wpa_supplicant/src/esp_supplicant/esp_scan.c +++ b/components/wpa_supplicant/src/esp_supplicant/esp_scan.c @@ -199,7 +199,8 @@ static int esp_issue_scan(struct wpa_supplicant *wpa_s, params->ssid = os_zalloc(scan_params->ssids[0].ssid_len + 1); if (!params->ssid) { wpa_printf(MSG_ERROR, "failed to allocate memory"); - return -1; + ret = -1; + goto cleanup; } os_memcpy(params->ssid, scan_params->ssids[0].ssid, scan_params->ssids[0].ssid_len); params->scan_type = WIFI_SCAN_TYPE_ACTIVE; @@ -210,7 +211,8 @@ static int esp_issue_scan(struct wpa_supplicant *wpa_s, params->bssid = os_zalloc(ETH_ALEN); if (!params->bssid) { wpa_printf(MSG_ERROR, "failed to allocate memory"); - return -1; + ret = -1; + goto cleanup; } os_memcpy(params->bssid, scan_params->bssid, ETH_ALEN); }