Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-updates-src > by-pkgid > d76eea1b7760e62750338e2975db5953 > files > 2

xscreensaver-5.29-6.1.mga5.src.rpm

--- xscreensaver-4.23/driver/demo-Gtk.c.root	2005-10-22 07:36:52.000000000 +0200
+++ xscreensaver-4.23/driver/demo-Gtk.c	2005-11-21 11:12:25.000000000 +0100
@@ -890,8 +890,13 @@
   flush_dialog_changes_and_save (s);
   xscreensaver_command (GDK_DISPLAY(), XA_EXIT, 0, False, NULL);
   sleep (1);
+  if (getuid() == 0) {
+     if (system ("TEMPXAUTHORITY=`su - nobody -c \"/bin/mktemp /tmp/xscreensaver.XXXXXX\"` && xauth extract $TEMPXAUTHORITY $DISPLAY && XAUTHORITY=$TEMPXAUTHORITY xscreensaver -nosplash && rm -f $TEMPXAUTHORITY &") < 0)
+	     fprintf (stderr, "%s: fork error\n", blurb());
+  } else {
   if (system ("xscreensaver -nosplash &") < 0)
     fprintf (stderr, "%s: fork error\n", blurb());
+  }
 
   await_xscreensaver (s);
 }
@@ -4745,7 +4750,12 @@
 
       if (init_results == 1)
 	{
-	  system ("xscreensaver -nosplash &");
+	  if (getuid() == 0) {
+	    system ("TEMPXAUTHORITY=`su - nobody -c \"/bin/mktemp /tmp/xscreensaver.XXXXXX\"` && xauth extract $TEMPXAUTHORITY $DISPLAY && XAUTHORITY=$TEMPXAUTHORITY xscreensaver -nosplash && rm -f $TEMPXAUTHORITY &");
+	  }
+	  else {
+	    system ("xscreensaver -nosplash &");
+	  }
 	  return 0;
 	}