author | Alan Coopersmith <Alan.Coopersmith@Oracle.COM> |
Fri, 29 Apr 2016 14:55:13 -0700 | |
changeset 5888 | 09b82e3ff500 |
permissions | -rw-r--r-- |
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 |
} |