skalibs

Mirror/fork of https://skarnet.org/software/skalibs/
git clone https://ccx.te2000.cz/git/skalibs
Log | Files | Refs | README | LICENSE

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:
Msrc/libstddjb/xpathexec.c | 4+++-
Msrc/libstddjb/xpathexec0.c | 4+++-
Msrc/libstddjb/xpathexec0_run.c | 4+++-
Msrc/libstddjb/xpathexec_fromenv.c | 4+++-
Msrc/libstddjb/xpathexec_r.c | 4+++-
Msrc/libstddjb/xpathexec_r_name.c | 4+++-
Msrc/libstddjb/xpathexec_run.c | 4+++-
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) ; }