Also check errno to detect true errors from spawn*(). (#157258, reported
authorTor Lillqvist <tml@iki.fi>
Tue, 30 Nov 2004 02:27:22 +0000 (02:27 +0000)
committerTor Lillqvist <tml@src.gnome.org>
Tue, 30 Nov 2004 02:27:22 +0000 (02:27 +0000)
2004-11-30  Tor Lillqvist  <tml@iki.fi>

* glib/gspawn-win32-helper.c (WinMain): Also check errno to detect
true errors from spawn*(). (#157258, reported by Bruce Hochstetler)

ChangeLog
ChangeLog.pre-2-10
ChangeLog.pre-2-12
ChangeLog.pre-2-6
ChangeLog.pre-2-8
glib/gspawn-win32-helper.c

index 8791dd3..6fe5735 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2004-11-30  Tor Lillqvist  <tml@iki.fi>
+
+       * glib/gspawn-win32-helper.c (WinMain): Also check errno to detect
+       true errors from spawn*(). (#157258, reported by Bruce Hochstetler)
+
 2004-11-29  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95.
index 8791dd3..6fe5735 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-30  Tor Lillqvist  <tml@iki.fi>
+
+       * glib/gspawn-win32-helper.c (WinMain): Also check errno to detect
+       true errors from spawn*(). (#157258, reported by Bruce Hochstetler)
+
 2004-11-29  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95.
index 8791dd3..6fe5735 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-30  Tor Lillqvist  <tml@iki.fi>
+
+       * glib/gspawn-win32-helper.c (WinMain): Also check errno to detect
+       true errors from spawn*(). (#157258, reported by Bruce Hochstetler)
+
 2004-11-29  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95.
index 8791dd3..6fe5735 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-30  Tor Lillqvist  <tml@iki.fi>
+
+       * glib/gspawn-win32-helper.c (WinMain): Also check errno to detect
+       true errors from spawn*(). (#157258, reported by Bruce Hochstetler)
+
 2004-11-29  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95.
index 8791dd3..6fe5735 100644 (file)
@@ -1,3 +1,8 @@
+2004-11-30  Tor Lillqvist  <tml@iki.fi>
+
+       * glib/gspawn-win32-helper.c (WinMain): Also check errno to detect
+       true errors from spawn*(). (#157258, reported by Bruce Hochstetler)
+
 2004-11-29  Matthias Clasen  <mclasen@redhat.com>
 
        * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95.
index 5a2c910..1e34aab 100644 (file)
@@ -74,6 +74,7 @@ WinMain (struct HINSTANCE__ *hInstance,
   int fd;
   int mode;
   int handle;
+  int saved_errno;
   int no_error = CHILD_NO_ERROR;
   int zero = 0;
   gint file_and_argv_zero = 0;
@@ -240,6 +241,8 @@ WinMain (struct HINSTANCE__ *hInstance,
   else
     handle = spawnv (mode, __argv[ARG_PROGRAM], new_argv + ARG_PROGRAM + file_and_argv_zero);
 
+  saved_errno = errno;
+
   if (debug)
     {
       debugstring = g_string_new (NULL);
@@ -251,7 +254,7 @@ WinMain (struct HINSTANCE__ *hInstance,
       MessageBox (NULL, debugstring->str, "gspawn-win32-helper", 0);
     }
 
-  if (handle < 0)
+  if (handle == -1 && saved_errno != 0)
     write_err_and_exit (child_err_report_fd, CHILD_SPAWN_FAILED);
 
   write (child_err_report_fd, &no_error, sizeof (no_error));