http://packetstormsecurity.org/UNIX/admin/xscreensaver-4.03.tar.gz
[xscreensaver] / driver / xscreensaver-getimage.c
index 46e3019eee924e3024348b265e53402e49870395..ab5243273117d2108c0e26b4f2776b87be4d48ed 100644 (file)
@@ -1,4 +1,4 @@
-/* xscreensaver, Copyright (c) 2001 by Jamie Zawinski <jwz@jwz.org>
+/* xscreensaver, Copyright (c) 2001, 2002 by Jamie Zawinski <jwz@jwz.org>
  *
  * Permission to use, copy, modify, distribute, and sell this software and its
  * documentation for any purpose is hereby granted without fee, provided that
@@ -110,10 +110,8 @@ static int
 x_ehandler (Display *dpy, XErrorEvent *error)
 {
   fprintf (stderr, "\nX error in %s:\n", progname);
-  if (XmuPrintDefaultErrorMessage (dpy, error, stderr))
-    exit (-1);
-  else
-    fprintf (stderr, " (nonfatal.)\n");
+  XmuPrintDefaultErrorMessage (dpy, error, stderr);
+  exit (-1);
   return 0;
 }
 
@@ -295,6 +293,12 @@ get_image (Screen *screen, Window window, Bool verbose_p)
 
         if (putenv (ndpy))
           abort ();
+
+        /* don't free (ndpy) -- some implementations of putenv (BSD
+           4.4, glibc 2.0) copy the argument, but some (libc4,5, glibc
+           2.1.2) do not.  So we must leak it (and/or the previous
+           setting).  Yay.
+         */
       }
 # endif /* HAVE_PUTENV */