components/desktop/dbus/patches/dbus-03-consoleuser.patch
author Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
Fri, 29 Apr 2016 14:55:13 -0700
changeset 5888 09b82e3ff500
permissions -rw-r--r--
23169096 Move D-Bus packages to Userland 15714235 system/library/libdbus is missing all its dependencies 21020807 Add "RO" to res1 field of auth_attr.d files in DBus
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
5888
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     1
Patch migrated from Desktop, where it was listed as:
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     2
# date:2010-10-20 owner:yippi type:bug bugster:6993687
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     3
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     4
aka:
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     5
15676303 SUNBT6993687 Solaris D-Bus needs logic to recognize the "console user"
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     6
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     7
Solaris-specific
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     8
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
     9
--- dbus-1.2.24/dbus/dbus-sysdeps-util-unix.c-orig	2010-10-19 13:27:19.672465743 -0500
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    10
+++ dbus-1.2.24/dbus/dbus-sysdeps-util-unix.c	2010-10-19 13:28:39.691609495 -0500
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    11
@@ -54,6 +54,10 @@
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    12
 #include <syslog.h>
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    13
 #endif
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    14
 
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    15
+#ifdef __sun
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    16
+#include <pwd.h>
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    17
+#endif
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    18
+
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    19
 #ifdef HAVE_SYS_SYSLIMITS_H
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    20
 #include <sys/syslimits.h>
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    21
 #endif
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    22
@@ -542,8 +546,31 @@ _dbus_user_at_console (const char *usern
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    23
 
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    24
   DBusString u, f;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    25
   dbus_bool_t result;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    26
+#ifdef __sun
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    27
+  struct passwd *passwd_entry;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    28
+#endif
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    29
 
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    30
   result = FALSE;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    31
+
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    32
+#ifdef __sun
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    33
+  passwd_entry = getpwnam (username);
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    34
+  if (passwd_entry != NULL)
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    35
+    {
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    36
+      struct stat st;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    37
+      uid_t uid;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    38
+
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    39
+      uid = passwd_entry->pw_uid;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    40
+
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    41
+      if (stat ("/dev/vt/console_user", &st) == 0 && st.st_uid == uid)
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    42
+        {
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    43
+         /*
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    44
+          * Owner is allowed to take over. Before we have real
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    45
+          * ownership in HAL, assume it's the console owner.
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    46
+          */
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    47
+          result = TRUE;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    48
+        }
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    49
+    }
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    50
+#else
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    51
   if (!_dbus_string_init (&f))
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    52
     {
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    53
       _DBUS_SET_OOM (error);
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    54
@@ -568,6 +595,7 @@ _dbus_user_at_console (const char *usern
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    55
 
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    56
  out:
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    57
   _dbus_string_free (&f);
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    58
+#endif
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    59
 
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    60
   return result;
09b82e3ff500 23169096 Move D-Bus packages to Userland
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff changeset
    61
 }