summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Zaborowski <andrew.zaborowski@intel.com>2020-10-23 03:47:29 +0200
committerThomas Haller <thaller@redhat.com>2020-11-12 15:35:55 +0100
commit0478de8108fbe049054f4adabab763602279ccae (patch)
treeff56e0889476914d77e7bb0205ea24225d139089
parent2f83777054a6f811288434ee90958ce1c9128432 (diff)
downloadNetworkManager-0478de8108fbe049054f4adabab763602279ccae.tar.gz
iwd: Fix a use after free
In connection_removed we use the id.name that was being g_freed a few lines further down. Fixes: bea6c403677f ('wifi/iwd: handle forgetting connection profiles')
-rw-r--r--src/devices/wifi/nm-iwd-manager.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/src/devices/wifi/nm-iwd-manager.c b/src/devices/wifi/nm-iwd-manager.c
index a19c8b2afd..402480d279 100644
--- a/src/devices/wifi/nm-iwd-manager.c
+++ b/src/devices/wifi/nm-iwd-manager.c
@@ -692,15 +692,16 @@ connection_removed(NMSettings *settings, NMSettingsConnection *sett_conn, gpoint
gboolean mapped;
KnownNetworkData * data;
KnownNetworkId id;
+ gs_free char * ssid_str = NULL;
id.security = nm_wifi_connection_get_iwd_security(conn, &mapped);
if (!mapped)
return;
s_wireless = nm_connection_get_setting_wireless(conn);
- id.name = _nm_utils_ssid_to_utf8(nm_setting_wireless_get_ssid(s_wireless));
+ ssid_str = _nm_utils_ssid_to_utf8(nm_setting_wireless_get_ssid(s_wireless));
+ id.name = ssid_str;
data = g_hash_table_lookup(priv->known_networks, &id);
- g_free((char *) id.name);
if (!data)
return;