author | Rich Burridge <rich.burridge@oracle.com> |
Tue, 02 May 2017 17:33:26 -0700 | |
changeset 7964 | d9801318ed3d |
parent 7818 | c93a988b3522 |
permissions | -rw-r--r-- |
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
1 |
From 42a34d66f5455bb0899f189a38539affbae0e212 Mon Sep 17 00:00:00 2001 |
5561
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 |
--- |
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
16 |
driver/demo-Gtk.c | 15 +++++++++++++++ |
5561
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 ++++--- |
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
22 |
6 files changed, 37 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 |
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
25 |
index d62152c..f6f9c19 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 |
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
28 |
@@ -723,6 +723,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 |
|
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
43 |
@@ -5163,6 +5171,13 @@ main (int argc, char **argv) |
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
44 |
(gpointer) s); |
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
45 |
#endif /* !HAVE_GTK2 */ |
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
46 |
|
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
47 |
+ if (getuid () == 0) |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
48 |
+ { |
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
49 |
+ /* If logged in as root disable menu so user can't activate a hack. */ |
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
50 |
+ gtk_widget_set_sensitive (GTK_WIDGET (name_to_widget (s, "mode_menu")), |
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
51 |
+ False); |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
52 |
+ } |
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
53 |
+ else |
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
54 |
/* Hook up callbacks to the items on the mode menu. */ |
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
55 |
gtk_signal_connect (GTK_OBJECT (name_to_widget (s, "mode_menu")), |
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
56 |
"changed", GTK_SIGNAL_FUNC (mode_menu_item_cb), |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
57 |
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
|
58 |
index 38ca88a..b68089e 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
59 |
--- a/driver/exec.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
60 |
+++ b/driver/exec.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
61 |
@@ -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
|
62 |
hairy_p = !!strpbrk (command, "*?$&!<>[];`'\\\"="); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
63 |
/* 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
|
64 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
65 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
66 |
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
|
67 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
68 |
/* 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
|
69 |
@@ -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
|
70 |
blurb()); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
71 |
exit (-1); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
72 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
73 |
+#endif /*DONT_ALLOW_ROOT_LOGIN*/ |
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 |
if (hairy_p) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
76 |
/* 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
|
77 |
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
|
78 |
index a17194a..e3aa78d 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
79 |
--- a/driver/setuid.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
80 |
+++ b/driver/setuid.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
81 |
@@ -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
|
82 |
struct passwd *p = getpwuid (uid); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
83 |
struct group *g = getgrgid (gid); |
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 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
|
86 |
+ if (getuid () == (uid_t) 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
87 |
+ return 0; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
88 |
+ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
89 |
if (message_ret) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
90 |
*message_ret = 0; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
91 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
92 |
@@ -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
|
93 |
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
|
94 |
and "USING XDM". |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
95 |
*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
96 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
97 |
if (getuid() == (uid_t) 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 |
si->locking_disabled_p = True; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
100 |
si->nolock_reason = "running as root"; |
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 |
+#endif /*DONT_ALLOW_ROOT_LOGIN*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
103 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
104 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
105 |
/* 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
|
106 |
@@ -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
|
107 |
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
|
108 |
and "USING XDM". |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
109 |
*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
110 |
+/* 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
|
111 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
112 |
if (getuid() == (uid_t) 0) |
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 |
struct passwd *p; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
115 |
@@ -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
|
116 |
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
|
117 |
saver_exit (si, -1, 0); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
118 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
119 |
+#endif /*DONT_ALLOW_ROOT_LOGIN*/ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
120 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
121 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
122 |
/* 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
|
123 |
@@ -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
|
124 |
(p && p->pw_name && *p->pw_name |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
125 |
? p->pw_name : "<unknown>")); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
126 |
si->nolock_reason = buf; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
127 |
+ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
128 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
129 |
si->locking_disabled_p = True; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
130 |
+#endif |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
131 |
si->dangerous_uid_p = True; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
132 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
133 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
134 |
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
|
135 |
index a244f36..c975813 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
136 |
--- a/driver/subprocs.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
137 |
+++ b/driver/subprocs.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
138 |
@@ -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
|
139 |
saver_preferences *p = &si->prefs; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
140 |
char* complete_hack_command; |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
141 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
142 |
+ if (getuid () == 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
143 |
+ 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
|
144 |
+ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
145 |
if (si->prefs.verbose_p) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
146 |
fprintf(stderr, "--> spawn_screenhack()\n"); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
147 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
148 |
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
|
149 |
index 9afc752..32728a0 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
150 |
--- a/driver/timers.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
151 |
+++ b/driver/timers.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
152 |
@@ -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
|
153 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
154 |
raise_window (si, True, True, False); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
155 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
156 |
- if (!si->throttled_p) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
157 |
+ if (!si->throttled_p && getuid () != 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
158 |
for (i = 0; i < si->nscreens; i++) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
159 |
spawn_screenhack (&si->screens[i]); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
160 |
else |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
161 |
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
|
162 |
index 33d357a..f357281 100644 |
5400
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
163 |
--- a/driver/xscreensaver.c |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
164 |
+++ b/driver/xscreensaver.c |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
165 |
@@ -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
|
166 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
167 |
describe_uids (si, stderr); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
168 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
169 |
+#ifdef DONT_ALLOW_ROOT_LOGIN |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
170 |
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
|
171 |
{ |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
172 |
fprintf (stderr, "\n" |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
173 |
@@ -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
|
174 |
blurb()); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
175 |
} |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
176 |
else |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
177 |
+#endif /*DONT_ALLOW_ROOT_LOGIN*/ |
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 |
fprintf (stderr, "\n" |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
180 |
"%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
|
181 |
-" 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
|
182 |
-" 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
|
183 |
+" 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
|
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 |
|
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
187 |
@@ -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
|
188 |
kill_screenhack (&si->screens[i]); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
189 |
|
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
190 |
raise_window (si, True, True, False); |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
191 |
- if (si->throttled_p) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
192 |
+ if (si->throttled_p || getuid () == 0) |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
193 |
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
|
194 |
else |
1199f8e91f50
22592978 Move xscreensaver to the Userland gate
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
diff
changeset
|
195 |
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
|
196 |
-- |
7818
c93a988b3522
25803271 xscreensaver should stop using libglade
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5561
diff
changeset
|
197 |
2.7.4 |
5561
0416d82f7f55
22593000 Upgrade xscreensaver to version 5.34
Alan Coopersmith <Alan.Coopersmith@Oracle.COM>
parents:
5400
diff
changeset
|
198 |