wpa_supplicant: Fix memory leak in esp_issue_scan error paths

Fix memory leak when allocate memory for params->ssid / params->bssid fails.

Fixes: 27101f9454 ("wpa_supplicant: Add initial roaming support")
Signed-off-by: Axel Lin <axel.lin@gmail.com>
Signed-off-by: Sagar Bijwe <sagar@espressif.com>

Merges https://github.com/espressif/esp-idf/pull/7240
This commit is contained in:
Axel Lin
2021-07-07 08:17:49 +08:00
committed by Sagar Bijwe
parent 9b8cdf9e87
commit 30d6c8401c

View File

@ -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); params->ssid = os_zalloc(scan_params->ssids[0].ssid_len + 1);
if (!params->ssid) { if (!params->ssid) {
wpa_printf(MSG_ERROR, "failed to allocate memory"); 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); os_memcpy(params->ssid, scan_params->ssids[0].ssid, scan_params->ssids[0].ssid_len);
params->scan_type = WIFI_SCAN_TYPE_ACTIVE; 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); params->bssid = os_zalloc(ETH_ALEN);
if (!params->bssid) { if (!params->bssid) {
wpa_printf(MSG_ERROR, "failed to allocate memory"); wpa_printf(MSG_ERROR, "failed to allocate memory");
return -1; ret = -1;
goto cleanup;
} }
os_memcpy(params->bssid, scan_params->bssid, ETH_ALEN); os_memcpy(params->bssid, scan_params->bssid, ETH_ALEN);
} }