rpms/xscreensaver/FC-4 xscreensaver-4.22-dont-run-non-existent-hacks.patch, NONE, 1.1 xscreensaver.spec, 1.52, 1.53

fedora-cvs-commits at redhat.com fedora-cvs-commits at redhat.com
Tue Jun 6 14:45:59 UTC 2006


Author: rstrode

Update of /cvs/dist/rpms/xscreensaver/FC-4
In directory cvs.devel.redhat.com:/tmp/cvs-serv5440

Modified Files:
	xscreensaver.spec 
Added Files:
	xscreensaver-4.22-dont-run-non-existent-hacks.patch 
Log Message:
- Don't run non-existent hacks. Patch provided by Vlado Potisk
  (bug 176621).


xscreensaver-4.22-dont-run-non-existent-hacks.patch:
 demo-Gtk.c     |   47 -----------------------------------------------
 exec.c         |   47 +++++++++++++++++++++++++++++++++++++++++++++++
 subprocs.c     |    1 +
 xscreensaver.h |    1 +
 4 files changed, 49 insertions(+), 47 deletions(-)

--- NEW FILE xscreensaver-4.22-dont-run-non-existent-hacks.patch ---
--- xscreensaver-4.21/driver/demo-Gtk.c.OLD	2006-06-05 23:57:57.000000000 +0200
+++ xscreensaver-4.21/driver/demo-Gtk.c	2006-06-06 00:29:41.000000000 +0200
@@ -2348,53 +2348,6 @@
     }
 }
 
-
-static Bool
-on_path_p (const char *program)
-{
-  int result = False;
-  struct stat st;
-  char *cmd = strdup (program);
-  char *token = strchr (cmd, ' ');
-  char *path = 0;
-  int L;
-
-  if (token) *token = 0;
-  token = 0;
-
-  if (strchr (cmd, '/'))
-    {
-      result = (0 == stat (cmd, &st));
-      goto DONE;
-    }
-
-  path = getenv("PATH");
-  if (!path || !*path)
-    goto DONE;
-
-  L = strlen (cmd);
-  path = strdup (path);
-  token = strtok (path, ":");
-
-  while (token)
-    {
-      char *p2 = (char *) malloc (strlen (token) + L + 3);
-      strcpy (p2, token);
-      strcat (p2, "/");
-      strcat (p2, cmd);
-      result = (0 == stat (p2, &st));
-      if (result)
-        goto DONE;
-      token = strtok (0, ":");
-    }
-
- DONE:
-  free (cmd);
-  if (path) free (path);
-  return result;
-}
-
-
 static void
 populate_hack_list (state *s)
 {
--- xscreensaver-4.21/driver/exec.c.OLD	2006-06-06 00:30:26.000000000 +0200
+++ xscreensaver-4.21/driver/exec.c	2006-06-06 00:35:15.000000000 +0200
@@ -58,6 +58,7 @@
 #include <string.h>
 #include <stdio.h>
 #include <ctype.h>
+#include <sys/stat.h>
 
 #ifndef ESRCH
 # include <errno.h>
@@ -246,3 +247,49 @@
 
 #endif
 }
+
+int
+on_path_p (const char *program)
+{
+  int result = 0;
+  struct stat st;
+  char *cmd = strdup (program);
+  char *token = strchr (cmd, ' ');
+  char *path = 0;
+  int L;
+
+  if (token) *token = 0;
+  token = 0;
+
+  if (strchr (cmd, '/'))
+    {
+      result = (0 == stat (cmd, &st));
+      goto DONE;
+    }
+
+  path = getenv("PATH");
+  if (!path || !*path)
+    goto DONE;
+
+  L = strlen (cmd);
+  path = strdup (path);
+  token = strtok (path, ":");
+
+  while (token)
+    {
+      char *p2 = (char *) malloc (strlen (token) + L + 3);
+      strcpy (p2, token);
+      strcat (p2, "/");
+      strcat (p2, cmd);
+      result = (0 == stat (p2, &st));
+      if (result)
+        goto DONE;
+      token = strtok (0, ":");
+    }
+
+ DONE:
+  free (cmd);
+  if (path) free (path);
+  return result;
+}
+
--- xscreensaver-4.21/driver/subprocs.c.OLD	2006-06-06 00:02:04.000000000 +0200
+++ xscreensaver-4.21/driver/subprocs.c	2006-06-06 00:01:35.000000000 +0200
@@ -806,6 +806,7 @@
         
       if (!force &&
 	  (!hack->enabled_p ||
+	   !on_path_p (hack->command) ||
 	   !select_visual_of_hack (ssi, hack)))
 	{
 	  if (++retry_count > (p->screenhacks_count*4))
--- xscreensaver-4.21/driver/xscreensaver.h.OLD	2006-06-05 23:57:30.000000000 +0200
+++ xscreensaver-4.21/driver/xscreensaver.h	2006-06-05 23:57:42.000000000 +0200
@@ -427,6 +427,7 @@
 extern const char *signal_name (int signal);
 extern void exec_command (const char *shell, const char *command,
                           int nice_level);
+extern int on_path_p (const char *program);
 
 /* =======================================================================
    subprocs diagnostics


Index: xscreensaver.spec
===================================================================
RCS file: /cvs/dist/rpms/xscreensaver/FC-4/xscreensaver.spec,v
retrieving revision 1.52
retrieving revision 1.53
diff -u -r1.52 -r1.53
--- xscreensaver.spec	12 Aug 2005 13:44:53 -0000	1.52
+++ xscreensaver.spec	6 Jun 2006 14:45:57 -0000	1.53
@@ -4,7 +4,7 @@
 Summary:	X screen saver and locker
 Name:		%{name}
 Version:	%{version}
-Release:	6.fc4.1
+Release:	6.fc4.2
 Epoch:		1
 License:	BSD
 Group:		Amusements/Graphics
@@ -18,6 +18,7 @@
 Patch4:         xscreensaver-4.21-use-hack-basename.patch
 Patch5:         xscreensaver-4.22-signal-handler-fun.patch
 Patch6:         xscreensaver-4.22-warn-about-extras.patch
+Patch7:         xscreensaver-4.22-dont-run-non-existent-hacks.patch
 Buildroot:	%{_tmppath}/%{name}-root
 
 # find_lang
@@ -78,6 +79,7 @@
 %patch4 -p1 -b .use-hack-basename
 %patch5 -p1 -b .signal-handler-fun
 %patch6 -p1 -b .warn-about-extras
+%patch7 -p1 -b .dont-run-non-existent-hacks
 
 if [ -x %{_datadir}/libtool/config.guess ]; then
   # use system-wide copy
@@ -206,6 +208,10 @@
 %defattr(-,root,root)
 
 %changelog
+* Tue Jun  6 2006 Ray Strode <rstrode at redhat.com> 1:4.22-6.fc4.2
+- Don't run non-existent hacks. Patch provided by Vlado Potisk
+  (bug 176621).
+
 * Fri Aug 12 2005 Ray Strode <rstrode at redhat.com> 1:4.22-6.fc4.1
 - Fix warn about extras patch
 




More information about the fedora-cvs-commits mailing list