diff options
author | Gerrit Pape <pape@smarden.org> | 2010-11-28 20:32:00 +0800 |
---|---|---|
committer | maximilian attems <max@stro.at> | 2011-06-03 18:44:13 +0200 |
commit | 213764f2200803311a363b98a5664c31292f3363 (patch) | |
tree | e9c0ebe20b0f2cebc35d1dcb5359ff7ba3562325 | |
parent | 5ab344012d0df691e7497dd5fd7108e6ce238596 (diff) | |
download | klibc-213764f2200803311a363b98a5664c31292f3363.tar.gz |
[klibc] [INPUT] Use exit status 127 when the script to run does not
exist
This commit makes dash exit with return code 127 instead of 2 if
started as non-interactive shell with a non-existent command_file
specified as argument (or a directory), as documented in
http://www.opengroup.org/onlinepubs/009695399/utilities/sh.html#tag_04_128_14
The wrong exit code was reported by Clint Adams and Jari Aalto through
http://bugs.debian.org/548743
http://bugs.debian.org/548687
Signed-off-by: Gerrit Pape <pape@smarden.org>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: maximilian attems <max@stro.at>
-rw-r--r-- | usr/dash/input.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/usr/dash/input.c b/usr/dash/input.c index e57ad761485c4..bd3a9a27d53e1 100644 --- a/usr/dash/input.c +++ b/usr/dash/input.c @@ -42,6 +42,7 @@ * This file implements the input routines used by the parser. */ +#include "eval.h" #include "shell.h" #include "redir.h" #include "syntax.h" @@ -408,7 +409,8 @@ setinputfile(const char *fname, int flags) if ((fd = open(fname, O_RDONLY)) < 0) { if (flags & INPUT_NOFILE_OK) goto out; - sh_error("Can't open %s", fname); + exitstatus = 127; + exerror(EXERROR, "Can't open %s", fname); } if (fd < 10) fd = savefd(fd, fd); |