about summary refs log tree commit diff
path: root/lib/libsystem.c
diff options
context:
space:
mode:
authorgiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2009-12-19 03:27:40 +0000
committergiraffedata <giraffedata@9d0c8265-081b-0410-96cb-a4ca84ce46f8>2009-12-19 03:27:40 +0000
commite2b5967ae3f0cdb2833f2ecc425966da9d4db10b (patch)
treea138f33b076b36ffbfa04008066ca170e5440176 /lib/libsystem.c
parent6d9b81564e2dc1ec40e46659ee5b2b810f0f618f (diff)
downloadnetpbm-mirror-e2b5967ae3f0cdb2833f2ecc425966da9d4db10b.tar.gz
netpbm-mirror-e2b5967ae3f0cdb2833f2ecc425966da9d4db10b.tar.xz
netpbm-mirror-e2b5967ae3f0cdb2833f2ecc425966da9d4db10b.zip
Fix pm_system* error message when execvp() fails
git-svn-id: http://svn.code.sf.net/p/netpbm/code/trunk@1058 9d0c8265-081b-0410-96cb-a4ca84ce46f8
Diffstat (limited to 'lib/libsystem.c')
-rw-r--r--lib/libsystem.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/lib/libsystem.c b/lib/libsystem.c
index 4581aa66..31c23bf6 100644
--- a/lib/libsystem.c
+++ b/lib/libsystem.c
@@ -49,11 +49,12 @@ execProgram(const char *  const progName,
 -----------------------------------------------------------------------------*/
     int stdinSaveFd, stdoutSaveFd;
     int rc;
+    int execErrno;
 
     /* Make stdinFd Standard Input.
        Make stdoutFd Standard Output.
     */
-    stdinSaveFd = dup(STDIN);
+    stdinSaveFd  = dup(STDIN);
     stdoutSaveFd = dup(STDOUT);
     
     close(STDIN);
@@ -64,6 +65,8 @@ execProgram(const char *  const progName,
 
     rc = execvp(progName, (char **)argArray);
 
+    execErrno = errno;
+
     close(STDIN);
     close(STDOUT);
     dup2(stdinSaveFd, STDIN);
@@ -75,7 +78,7 @@ execProgram(const char *  const progName,
         pm_error("Unable to exec '%s' "
                  "(i.e. the program did not run at all).  "
                  "execvp() errno=%d (%s)",
-                 progName, errno, strerror(errno));
+                 progName, execErrno, strerror(execErrno));
     else
         pm_error("INTERNAL ERROR.  execvp() returns, but does not fail.");
 }