author | Alan Coopersmith <Alan.Coopersmith@Oracle.COM> |
Tue, 08 Mar 2016 09:00:31 -0800 | |
changeset 5561 | 0416d82f7f55 |
parent 5400 | components/desktop/xscreensaver/patches/07-allow-root.patch@1199f8e91f50 |
child 7818 | c93a988b3522 |
permissions | -rw-r--r-- |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
1 |
From 53a079ae5ba815381fd94cace1a56cd2841e09ed Mon Sep 17 00:00:00 2001 |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
2 |
From: Alan Coopersmith <[email protected]> |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
3 |
Date: Sat, 2 Jan 2016 20:56:50 -0800 |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
4 |
Subject: [PATCH] allow root |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
5 |
|
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
6 |
Fix for: Bug 15155994 - SUNBT4849641 xscreensaver won't run as root |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
7 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
8 |
Let root lock the screen, but don't launch the hacks for root. |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
9 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
10 |
Rejected by upstream because upstream author argues instead that users should |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
11 |
not login as root, which is correct, but not something we can force all of |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
12 |
our customers to stop doing. |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
13 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
14 |
See http://www.jwz.org/xscreensaver/faq.html#root-lock for his side. |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
15 |
--- |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
16 |
driver/demo-Gtk.c | 18 ++++++++++++++++++ |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
17 |
driver/exec.c | 2 ++ |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
18 |
driver/setuid.c | 12 ++++++++++++ |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
19 |
driver/subprocs.c | 3 +++ |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
20 |
driver/timers.c | 2 +- |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
21 |
driver/xscreensaver.c | 7 ++++--- |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
22 |
6 files changed, 40 insertions(+), 4 deletions(-) |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
23 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
24 |
diff --git a/driver/demo-Gtk.c b/driver/demo-Gtk.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
25 |
index ece3c44..d4cc4a5 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
26 |
--- a/driver/demo-Gtk.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
27 |
+++ b/driver/demo-Gtk.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
28 |
@@ -713,6 +713,14 @@ run_hack (state *s, int list_elt, Bool report_errors_p) |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
29 |
char *err = 0; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
30 |
int status; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
31 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
32 |
+ if (getuid () == 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
33 |
+ { |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
34 |
+ char buf [255]; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
35 |
+ strlcpy (buf, _("Can not run hacks if logged in as root!"), sizeof(buf)); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
36 |
+ warning_dialog (s->toplevel_widget, buf, False, 100); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
37 |
+ return; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
38 |
+ } |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
39 |
+ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
40 |
if (list_elt < 0) return; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
41 |
hack_number = s->list_elt_to_hack_number[list_elt]; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
42 |
|
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
43 |
@@ -5173,6 +5181,15 @@ main (int argc, char **argv) |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
44 |
GtkMenu *menu = GTK_MENU (gtk_option_menu_get_menu (opt)); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
45 |
GList *kids = gtk_container_children (GTK_CONTAINER (menu)); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
46 |
int i; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
47 |
+ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
48 |
+ if (getuid () == 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
49 |
+ { |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
50 |
+ /* If logged in as root disable menu so user can't activate a hack. */ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
51 |
+ gtk_widget_set_sensitive (GTK_WIDGET (opt), False); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
52 |
+ gtk_widget_set_sensitive (GTK_WIDGET (menu), False); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
53 |
+ } |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
54 |
+ else |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
55 |
+ { |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
56 |
for (i = 0; kids; kids = kids->next, i++) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
57 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
58 |
gtk_signal_connect (GTK_OBJECT (kids->data), "activate", |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
59 |
@@ -5186,6 +5203,7 @@ main (int argc, char **argv) |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
60 |
mode_menu_order[i] == RANDOM_HACKS_SAME) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
61 |
gtk_widget_hide (GTK_WIDGET (kids->data)); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
62 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
63 |
+ } |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
64 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
65 |
if (s->nscreens <= 1) /* recompute option-menu size */ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
66 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
67 |
diff --git a/driver/exec.c b/driver/exec.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
68 |
index 38ca88a..b68089e 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
69 |
--- a/driver/exec.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
70 |
+++ b/driver/exec.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
71 |
@@ -186,6 +186,7 @@ exec_command (const char *shell, const char *command, int nice_level) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
72 |
hairy_p = !!strpbrk (command, "*?$&!<>[];`'\\\"="); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
73 |
/* note: = is in the above because of the sh syntax "FOO=bar cmd". */ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
74 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
75 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
76 |
if (getuid() == (uid_t) 0 || geteuid() == (uid_t) 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
77 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
78 |
/* If you're thinking of commenting this out, think again. |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
79 |
@@ -196,6 +197,7 @@ exec_command (const char *shell, const char *command, int nice_level) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
80 |
blurb()); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
81 |
exit (-1); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
82 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
83 |
+#endif /*DONT_ALLOW_ROOT_LOGIN*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
84 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
85 |
if (hairy_p) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
86 |
/* If it contains any shell metacharacters, do it the hard way, |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
87 |
diff --git a/driver/setuid.c b/driver/setuid.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
88 |
index a17194a..e3aa78d 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
89 |
--- a/driver/setuid.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
90 |
+++ b/driver/setuid.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
91 |
@@ -121,6 +121,10 @@ set_ids_by_number (uid_t uid, gid_t gid, char **message_ret) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
92 |
struct passwd *p = getpwuid (uid); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
93 |
struct group *g = getgrgid (gid); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
94 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
95 |
+ /* if we are logged in as root i.e. uid==0 then dont do anything*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
96 |
+ if (getuid () == (uid_t) 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
97 |
+ return 0; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
98 |
+ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
99 |
if (message_ret) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
100 |
*message_ret = 0; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
101 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
102 |
@@ -278,11 +282,13 @@ hack_uid (saver_info *si) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
103 |
of the xscreensaver manual titled "LOCKING AND ROOT LOGINS", |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
104 |
and "USING XDM". |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
105 |
*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
106 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
107 |
if (getuid() == (uid_t) 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
108 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
109 |
si->locking_disabled_p = True; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
110 |
si->nolock_reason = "running as root"; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
111 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
112 |
+#endif /*DONT_ALLOW_ROOT_LOGIN*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
113 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
114 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
115 |
/* If we're running as root, switch to a safer user. This is above and |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
116 |
@@ -297,6 +303,8 @@ hack_uid (saver_info *si) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
117 |
of the xscreensaver manual titled "LOCKING AND ROOT LOGINS", |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
118 |
and "USING XDM". |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
119 |
*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
120 |
+/* We are letting root login to fix a P1 bug, i.e. root should lock screen*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
121 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
122 |
if (getuid() == (uid_t) 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
123 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
124 |
struct passwd *p; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
125 |
@@ -315,6 +323,7 @@ hack_uid (saver_info *si) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
126 |
if (set_ids_by_number (p->pw_uid, p->pw_gid, &si->uid_message) != 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
127 |
saver_exit (si, -1, 0); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
128 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
129 |
+#endif /*DONT_ALLOW_ROOT_LOGIN*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
130 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
131 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
132 |
/* If there's anything even remotely funny looking about the passwd struct, |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
133 |
@@ -357,7 +366,10 @@ hack_uid (saver_info *si) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
134 |
(p && p->pw_name && *p->pw_name |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
135 |
? p->pw_name : "<unknown>")); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
136 |
si->nolock_reason = buf; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
137 |
+ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
138 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
139 |
si->locking_disabled_p = True; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
140 |
+#endif |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
141 |
si->dangerous_uid_p = True; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
142 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
143 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
144 |
diff --git a/driver/subprocs.c b/driver/subprocs.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
145 |
index a244f36..c975813 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
146 |
--- a/driver/subprocs.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
147 |
+++ b/driver/subprocs.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
148 |
@@ -947,6 +947,9 @@ spawn_screenhack (saver_screen_info *ssi) |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
149 |
saver_preferences *p = &si->prefs; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
150 |
char* complete_hack_command; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
151 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
152 |
+ if (getuid () == 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
153 |
+ return; /* Dont let hacks run if logged in as root*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
154 |
+ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
155 |
if (si->prefs.verbose_p) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
156 |
fprintf(stderr, "--> spawn_screenhack()\n"); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
157 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
158 |
diff --git a/driver/timers.c b/driver/timers.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
159 |
index 9afc752..32728a0 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
160 |
--- a/driver/timers.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
161 |
+++ b/driver/timers.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
162 |
@@ -284,7 +284,7 @@ cycle_timer (XtPointer closure, XtIntervalId *id) |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
163 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
164 |
raise_window (si, True, True, False); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
165 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
166 |
- if (!si->throttled_p) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
167 |
+ if (!si->throttled_p && getuid () != 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
168 |
for (i = 0; i < si->nscreens; i++) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
169 |
spawn_screenhack (&si->screens[i]); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
170 |
else |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
171 |
diff --git a/driver/xscreensaver.c b/driver/xscreensaver.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
172 |
index 33d357a..f357281 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
173 |
--- a/driver/xscreensaver.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
174 |
+++ b/driver/xscreensaver.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
175 |
@@ -487,6 +487,7 @@ startup_ehandler (String name, String type, String class, |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
176 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
177 |
describe_uids (si, stderr); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
178 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
179 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
180 |
if (si->orig_uid && !strncmp (si->orig_uid, "root/", 5)) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
181 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
182 |
fprintf (stderr, "\n" |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
183 |
@@ -500,11 +501,11 @@ startup_ehandler (String name, String type, String class, |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
184 |
blurb()); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
185 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
186 |
else |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
187 |
+#endif /*DONT_ALLOW_ROOT_LOGIN*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
188 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
189 |
fprintf (stderr, "\n" |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
190 |
"%s: Errors at startup are usually authorization problems.\n" |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
191 |
-" But you're not logging in as root (good!) so something\n" |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
192 |
-" else must be wrong. Did you read the manual and the FAQ?\n", |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
193 |
+" Did you read the manual and the FAQ?\n", |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
194 |
blurb()); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
195 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
196 |
|
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
197 |
@@ -1338,7 +1339,7 @@ main_loop (saver_info *si) |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
198 |
kill_screenhack (&si->screens[i]); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
199 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
200 |
raise_window (si, True, True, False); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
201 |
- if (si->throttled_p) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
202 |
+ if (si->throttled_p || getuid () == 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
203 |
fprintf (stderr, "%s: not launching hack (throttled.)\n", blurb()); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
204 |
else |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
205 |
for (i = 0; i < si->nscreens; i++) |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
206 |
-- |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
207 |
2.6.1 |
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
208 |