commit 376481b8cd087d2484bb4966df85e847612eb9dd
parent 92f85920b02ad5c9c4262c2c17778f69779c0604
Author: Laurent Bercot <ska-skaware@skarnet.org>
Date: Tue, 12 Feb 2019 14:30:52 +0000
Fix xpathexec* exit codes when execve() fails!
Diffstat:
7 files changed, 21 insertions(+), 7 deletions(-)
diff --git a/src/libstddjb/xpathexec.c b/src/libstddjb/xpathexec.c
@@ -1,10 +1,12 @@
/* ISC license. */
+#include <errno.h>
+
#include <skalibs/djbunix.h>
#include <skalibs/strerr2.h>
void xpathexec (char const *const *argv)
{
pathexec(argv) ;
- strerr_dieexec(111, argv[0]) ;
+ strerr_dieexec(errno == ENOENT ? 127 : 126, argv[0]) ;
}
diff --git a/src/libstddjb/xpathexec0.c b/src/libstddjb/xpathexec0.c
@@ -1,10 +1,12 @@
/* ISC license. */
+#include <errno.h>
+
#include <skalibs/djbunix.h>
#include <skalibs/strerr2.h>
void xpathexec0 (char const *const *argv)
{
pathexec0(argv) ;
- strerr_dieexec(111, argv[0]) ;
+ strerr_dieexec(errno == ENOENT ? 127 : 126, argv[0]) ;
}
diff --git a/src/libstddjb/xpathexec0_run.c b/src/libstddjb/xpathexec0_run.c
@@ -1,10 +1,12 @@
/* ISC license. */
+#include <errno.h>
+
#include <skalibs/djbunix.h>
#include <skalibs/strerr2.h>
void xpathexec0_run (char const *const *argv, char const *const *envp)
{
pathexec0_run(argv, envp) ;
- strerr_dieexec(111, argv[0]) ;
+ strerr_dieexec(errno == ENOENT ? 127 : 126, argv[0]) ;
}
diff --git a/src/libstddjb/xpathexec_fromenv.c b/src/libstddjb/xpathexec_fromenv.c
@@ -1,10 +1,12 @@
/* ISC license. */
+#include <errno.h>
+
#include <skalibs/djbunix.h>
#include <skalibs/strerr2.h>
void xpathexec_fromenv (char const *const *argv, char const *const *envp, size_t envlen)
{
pathexec_fromenv(argv, envp, envlen) ;
- strerr_dieexec(111, argv[0]) ;
+ strerr_dieexec(errno == ENOENT ? 127 : 126, argv[0]) ;
}
diff --git a/src/libstddjb/xpathexec_r.c b/src/libstddjb/xpathexec_r.c
@@ -1,10 +1,12 @@
/* ISC license. */
+#include <errno.h>
+
#include <skalibs/djbunix.h>
#include <skalibs/strerr2.h>
void xpathexec_r (char const *const *argv, char const *const *envp, size_t envlen, char const *modifs, size_t modiflen)
{
pathexec_r(argv, envp, envlen, modifs, modiflen) ;
- strerr_dieexec(111, argv[0]) ;
+ strerr_dieexec(errno == ENOENT ? 127 : 126, argv[0]) ;
}
diff --git a/src/libstddjb/xpathexec_r_name.c b/src/libstddjb/xpathexec_r_name.c
@@ -1,10 +1,12 @@
/* ISC license. */
+#include <errno.h>
+
#include <skalibs/djbunix.h>
#include <skalibs/strerr2.h>
void xpathexec_r_name (char const *file, char const *const *argv, char const *const *envp, size_t envlen, char const *modifs, size_t modiflen)
{
pathexec_r_name(file, argv, envp, envlen, modifs, modiflen) ;
- strerr_dieexec(111, file) ;
+ strerr_dieexec(errno == ENOENT ? 127 : 126, file) ;
}
diff --git a/src/libstddjb/xpathexec_run.c b/src/libstddjb/xpathexec_run.c
@@ -1,10 +1,12 @@
/* ISC license. */
+#include <errno.h>
+
#include <skalibs/djbunix.h>
#include <skalibs/strerr2.h>
void xpathexec_run (char const *file, char const *const *argv, char const *const *envp)
{
pathexec_run(file, argv, envp) ;
- strerr_dieexec(111, file) ;
+ strerr_dieexec(errno == ENOENT ? 127 : 126, file) ;
}