aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerrit Pape <pape@smarden.org>2010-11-28 20:32:00 +0800
committermaximilian attems <max@stro.at>2011-06-03 18:44:13 +0200
commit213764f2200803311a363b98a5664c31292f3363 (patch)
treee9c0ebe20b0f2cebc35d1dcb5359ff7ba3562325
parent5ab344012d0df691e7497dd5fd7108e6ce238596 (diff)
downloadklibc-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.c4
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);