patches/dbus-03-consoleuser.diff
author davelam
Wed, 27 Oct 2010 00:38:09 +0000
branchNEVADA_151
changeset 20264 12adaad92776
permissions -rw-r--r--
2010-10-27 Brian Cameron <[email protected]> (Bug fix for b151a) * base-specs/dbus.spec, patches/dbus-03-consoleuser.diff: Add patch to fix CR #6963885.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
20264
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     1
--- dbus-1.2.24/dbus/dbus-sysdeps-util-unix.c-orig	2010-10-19 13:27:19.672465743 -0500
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     2
+++ dbus-1.2.24/dbus/dbus-sysdeps-util-unix.c	2010-10-19 13:28:39.691609495 -0500
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     3
@@ -45,6 +45,10 @@
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     4
 #include <sys/un.h>
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     5
 #include <syslog.h>
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     6
 
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     7
+#ifdef __sun
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     8
+#include <pwd.h>
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
     9
+#endif
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    10
+
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    11
 #ifdef HAVE_SYS_SYSLIMITS_H
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    12
 #include <sys/syslimits.h>
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    13
 #endif
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    14
@@ -496,8 +500,31 @@ _dbus_user_at_console (const char *usern
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    15
 
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    16
   DBusString f;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    17
   dbus_bool_t result;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    18
+#ifdef __sun
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    19
+  struct passwd *passwd_entry;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    20
+#endif
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    21
 
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    22
   result = FALSE;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    23
+
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    24
+#ifdef __sun
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    25
+  passwd_entry = getpwnam (username);
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    26
+  if (passwd_entry != NULL)
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    27
+    {
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    28
+      struct stat st;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    29
+      uid_t uid;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    30
+
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    31
+      uid = passwd_entry->pw_uid;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    32
+
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    33
+      if (stat ("/dev/vt/console_user", &st) == 0 && st.st_uid == uid)
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    34
+        {
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    35
+         /*
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    36
+          * Owner is allowed to take over. Before we have real
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    37
+          * ownership in HAL, assume it's the console owner.
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    38
+          */
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    39
+          result = TRUE;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    40
+        }
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    41
+    }
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    42
+#else
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    43
   if (!_dbus_string_init (&f))
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    44
     {
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    45
       _DBUS_SET_OOM (error);
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    46
@@ -521,6 +548,7 @@ _dbus_user_at_console (const char *usern
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    47
 
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    48
  out:
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    49
   _dbus_string_free (&f);
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    50
+#endif
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    51
 
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    52
   return result;
12adaad92776 2010-10-27 Brian Cameron <[email protected]>
davelam
parents:
diff changeset
    53
 }