about summary refs log tree commit diff
path: root/src/devices/wifi
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2020-12-06 21:58:58 +0100
committerMichael Biebl <biebl@debian.org>2020-12-06 21:58:58 +0100
commitec4fca2f78286742ae7f8313c2ee2124c1467b0c (patch)
treeb0c65baa44cb6f1146905601e26bec0385309c65 /src/devices/wifi
parent9c050d4b4b3b85760abead778d68a63b1fde0a02 (diff)
parent65f86e8f56267192d42f2b629fc6b0c99fb9cd0c (diff)
Update upstream source from tag 'upstream/1.28.0'
Update to upstream version '1.28.0'
with Debian dir 1448deb268c4818d41653eb95896b4228b7c3f72
Diffstat (limited to 'src/devices/wifi')
-rw-r--r--src/devices/wifi/nm-device-wifi.c10
-rw-r--r--src/devices/wifi/nm-iwd-manager.c5
-rw-r--r--src/devices/wifi/nm-wifi-ap.c18
3 files changed, 19 insertions, 14 deletions
diff --git a/src/devices/wifi/nm-device-wifi.c b/src/devices/wifi/nm-device-wifi.c
index 55062644..980916dd 100644
--- a/src/devices/wifi/nm-device-wifi.c
+++ b/src/devices/wifi/nm-device-wifi.c
@@ -1390,11 +1390,11 @@ _hw_addr_set_scanning(NMDeviceWifi *self, gboolean do_reset)
          * a new one.*/
         priv->hw_addr_scan_expire = now + SCAN_RAND_MAC_ADDRESS_EXPIRE_SEC;
 
-        generate_mac_address_mask =
-            nm_config_data_get_device_config(NM_CONFIG_GET_DATA,
-                                             "wifi.scan-generate-mac-address-mask",
-                                             device,
-                                             NULL);
+        generate_mac_address_mask = nm_config_data_get_device_config(
+            NM_CONFIG_GET_DATA,
+            NM_CONFIG_KEYFILE_KEY_DEVICE_WIFI_SCAN_GENERATE_MAC_ADDRESS_MASK,
+            device,
+            NULL);
 
         priv->scan_last_request_started_at_msec = G_MININT64;
         priv->scan_periodic_next_msec           = 0;
diff --git a/src/devices/wifi/nm-iwd-manager.c b/src/devices/wifi/nm-iwd-manager.c
index 6a562014..c7e99e0b 100644
--- a/src/devices/wifi/nm-iwd-manager.c
+++ b/src/devices/wifi/nm-iwd-manager.c
@@ -673,15 +673,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;
 
diff --git a/src/devices/wifi/nm-wifi-ap.c b/src/devices/wifi/nm-wifi-ap.c
index fe26421d..55438a53 100644
--- a/src/devices/wifi/nm-wifi-ap.c
+++ b/src/devices/wifi/nm-wifi-ap.c
@@ -113,22 +113,26 @@ nm_wifi_ap_set_ssid(NMWifiAP *ap, GBytes *ssid)
 
     g_return_val_if_fail(NM_IS_WIFI_AP(ap), FALSE);
 
-    if (ssid) {
-        l = g_bytes_get_size(ssid);
-        if (l == 0 || l > 32)
-            g_return_val_if_reached(FALSE);
+    if (!ssid) {
+        /* we don't clear the SSID, once we have it. We can only update
+         * it by a better value. */
+        return FALSE;
     }
 
+    l = g_bytes_get_size(ssid);
+    if (l == 0 || l > 32)
+        g_return_val_if_reached(FALSE);
+
     priv = NM_WIFI_AP_GET_PRIVATE(ap);
 
     if (ssid == priv->ssid)
         return FALSE;
-    if (ssid && priv->ssid && g_bytes_equal(ssid, priv->ssid))
+    if (priv->ssid && g_bytes_equal(ssid, priv->ssid))
         return FALSE;
 
+    g_bytes_ref(ssid);
     nm_clear_pointer(&priv->ssid, g_bytes_unref);
-    if (ssid)
-        priv->ssid = g_bytes_ref(ssid);
+    priv->ssid = ssid;
 
     _notify(ap, PROP_SSID);
     return TRUE;