components/desktop/xscreensaver/patches/0006-allow-root.patch
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--
22593000 Upgrade xscreensaver to version 5.34 22557069 problem in GNOME/SCREENSAVER
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
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