summary refs log tree commit diff
path: root/src/libnm-core-aux-intern
diff options
context:
space:
mode:
authorMichael Biebl <biebl@debian.org>2024-01-25 09:46:18 +0100
committerMichael Biebl <biebl@debian.org>2024-01-25 09:46:18 +0100
commit70e18d99b8e3e77bb37e218d7ac582130156f8ef (patch)
treed40c587e6d3f0e094ff558e415f1bb9803643214 /src/libnm-core-aux-intern
parentd4d8b2b91f7ba000d97a8b2aab48c85000c11314 (diff)
New upstream version 1.45.90 upstream/1.45.90
Diffstat (limited to 'src/libnm-core-aux-intern')
-rw-r--r--src/libnm-core-aux-intern/nm-auth-subject.c6
-rw-r--r--src/libnm-core-aux-intern/nm-common-macros.h29
2 files changed, 23 insertions, 12 deletions
diff --git a/src/libnm-core-aux-intern/nm-auth-subject.c b/src/libnm-core-aux-intern/nm-auth-subject.c
index db499b88..c381bdba 100644
--- a/src/libnm-core-aux-intern/nm-auth-subject.c
+++ b/src/libnm-core-aux-intern/nm-auth-subject.c
@@ -351,6 +351,8 @@ constructed(GObject *object)
     NMAuthSubject        *self = NM_AUTH_SUBJECT(object);
     NMAuthSubjectPrivate *priv = NM_AUTH_SUBJECT_GET_PRIVATE(self);
 
+    G_OBJECT_CLASS(nm_auth_subject_parent_class)->constructed(object);
+
     /* validate that the created instance. */
 
     switch (priv->subject_type) {
@@ -361,9 +363,9 @@ constructed(GObject *object)
     case NM_AUTH_SUBJECT_TYPE_UNIX_PROCESS:
         /* Ensure pid and uid to be representable as int32.
          * DBUS treats them as uint32, polkit library as int. */
-        if (priv->unix_process.pid > MIN(G_MAXINT, G_MAXINT32))
+        if (priv->unix_process.pid > NM_MIN(G_MAXINT, G_MAXINT32))
             break;
-        if (priv->unix_process.uid > MIN(G_MAXINT, G_MAXINT32)) {
+        if (priv->unix_process.uid > NM_MIN(G_MAXINT, G_MAXINT32)) {
             /* for uid==-1, libpolkit-gobject-1 detects the user based on the process id.
              * Don't bother and require the user id as parameter. */
             break;
diff --git a/src/libnm-core-aux-intern/nm-common-macros.h b/src/libnm-core-aux-intern/nm-common-macros.h
index c452b7d3..3e6eabae 100644
--- a/src/libnm-core-aux-intern/nm-common-macros.h
+++ b/src/libnm-core-aux-intern/nm-common-macros.h
@@ -34,19 +34,28 @@
     "org.freedesktop.NetworkManager.enable-disable-connectivity-check"
 #define NM_AUTH_PERMISSION_WIFI_SCAN "org.freedesktop.NetworkManager.wifi.scan"
 
-#define NM_CLONED_MAC_PRESERVE  "preserve"
-#define NM_CLONED_MAC_PERMANENT "permanent"
-#define NM_CLONED_MAC_RANDOM    "random"
-#define NM_CLONED_MAC_STABLE    "stable"
+#define NM_CLONED_MAC_PRESERVE    "preserve"
+#define NM_CLONED_MAC_PERMANENT   "permanent"
+#define NM_CLONED_MAC_RANDOM      "random"
+#define NM_CLONED_MAC_STABLE      "stable"
+#define NM_CLONED_MAC_STABLE_SSID "stable-ssid"
 
 static inline gboolean
-NM_CLONED_MAC_IS_SPECIAL(const char *str)
+NM_CLONED_MAC_IS_SPECIAL(const char *str, gboolean is_wifi)
 {
-    return NM_IN_STRSET(str,
-                        NM_CLONED_MAC_PRESERVE,
-                        NM_CLONED_MAC_PERMANENT,
-                        NM_CLONED_MAC_RANDOM,
-                        NM_CLONED_MAC_STABLE);
+    if (NM_IN_STRSET(str,
+                     NM_CLONED_MAC_PRESERVE,
+                     NM_CLONED_MAC_PERMANENT,
+                     NM_CLONED_MAC_RANDOM,
+                     NM_CLONED_MAC_STABLE))
+        return TRUE;
+
+    if (is_wifi) {
+        if (NM_IN_STRSET(str, NM_CLONED_MAC_STABLE_SSID))
+            return TRUE;
+    }
+
+    return FALSE;
 }
 
 #define NM_IAID_MAC      "mac"