diff --git a/ChangeLog b/ChangeLog index 8791dd3d9..6fe57352c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,8 @@ +2004-11-30 Tor Lillqvist + + * 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 * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95. diff --git a/ChangeLog.pre-2-10 b/ChangeLog.pre-2-10 index 8791dd3d9..6fe57352c 100644 --- a/ChangeLog.pre-2-10 +++ b/ChangeLog.pre-2-10 @@ -1,3 +1,8 @@ +2004-11-30 Tor Lillqvist + + * 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 * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95. diff --git a/ChangeLog.pre-2-12 b/ChangeLog.pre-2-12 index 8791dd3d9..6fe57352c 100644 --- a/ChangeLog.pre-2-12 +++ b/ChangeLog.pre-2-12 @@ -1,3 +1,8 @@ +2004-11-30 Tor Lillqvist + + * 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 * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95. diff --git a/ChangeLog.pre-2-6 b/ChangeLog.pre-2-6 index 8791dd3d9..6fe57352c 100644 --- a/ChangeLog.pre-2-6 +++ b/ChangeLog.pre-2-6 @@ -1,3 +1,8 @@ +2004-11-30 Tor Lillqvist + + * 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 * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95. diff --git a/ChangeLog.pre-2-8 b/ChangeLog.pre-2-8 index 8791dd3d9..6fe57352c 100644 --- a/ChangeLog.pre-2-8 +++ b/ChangeLog.pre-2-8 @@ -1,3 +1,8 @@ +2004-11-30 Tor Lillqvist + + * 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 * glib/gmacros.h (G_GNUC_MALLOC): Define empty for gcc 2.95. diff --git a/glib/gspawn-win32-helper.c b/glib/gspawn-win32-helper.c index 5a2c9106b..1e34aab71 100644 --- a/glib/gspawn-win32-helper.c +++ b/glib/gspawn-win32-helper.c @@ -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));