diff options
author | Herbert Xu <herbert@gondor.apana.org.au> | 2018-05-19 02:39:37 +0800 |
---|---|---|
committer | Ben Hutchings <ben@decadent.org.uk> | 2020-03-28 21:42:55 +0000 |
commit | 2cb3d00d728a1ebfe87818161b7a13dc2b6598ed (patch) | |
tree | 77b28082862cf0eacc64e81ce71089ce95740a52 | |
parent | c3b0fa9573b914694612b7a2bbf658928b5fb097 (diff) | |
download | klibc-2cb3d00d728a1ebfe87818161b7a13dc2b6598ed.tar.gz |
[klibc] dash: exec: Return 126 on most errors in shellexec
[ dash commit a332ebdaa13d3eaf70082e1be214c42645bc186a ]
Currently when shellexec fails on most errors the shell will exit
with exit status 2. This patch changes it to 126 in order to avoid
ambiguities with the exit status from a successful exec.
The errors that result in 127 has also been expanded to include
ENOTDIR, ENAMETOOLONG and ELOOP.
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r-- | usr/dash/exec.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/usr/dash/exec.c b/usr/dash/exec.c index e9e29b7e676af..d7ced357f4a43 100644 --- a/usr/dash/exec.c +++ b/usr/dash/exec.c @@ -130,15 +130,15 @@ shellexec(char **argv, const char *path, int idx) /* Map to POSIX errors */ switch (e) { - case EACCES: + default: exerrno = 126; break; + case ELOOP: + case ENAMETOOLONG: case ENOENT: + case ENOTDIR: exerrno = 127; break; - default: - exerrno = 2; - break; } exitstatus = exerrno; TRACE(("shellexec failed for %s, errno %d, suppressint %d\n", |