diff options
author | Andrew Zaborowski <andrew.zaborowski@intel.com> | 2020-10-23 03:47:29 +0200 |
---|---|---|
committer | Thomas Haller <thaller@redhat.com> | 2020-11-12 15:35:55 +0100 |
commit | 0478de8108fbe049054f4adabab763602279ccae (patch) | |
tree | ff56e0889476914d77e7bb0205ea24225d139089 | |
parent | 2f83777054a6f811288434ee90958ce1c9128432 (diff) | |
download | NetworkManager-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.c | 5 |
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; |