aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGerrit Pape <pape@smarden.org>2018-09-07 10:34:13 +0200
committerBen Hutchings <ben@decadent.org.uk>2020-03-28 21:42:55 +0000
commit9adc45f99d817c34e9ac95d240f54dd2bb4970c2 (patch)
tree21455cb29784bfeb26ac3e848d1201aeab11aa3c
parentb0626ba1febdb535a674743070dfc3f3c5735b29 (diff)
downloadklibc-9adc45f99d817c34e9ac95d240f54dd2bb4970c2.tar.gz
[klibc] dash: eval: Report I/O error on stdout
[ dash commit 8e43729547b57ab15842dab23215336a353b2ded ] ENOSPC as a result of an echo builting failing gives no diagnostic. Just as other shells, dash sets $? to 1, but aside from terminating the script, this does not inform the user what the problem is: zsh: % echo foo > /dev/full echo: write error: no space left on device bash: $ echo foo > /dev/full bash: echo: write error: No space left on device dash: $ echo foo > /dev/full [nothing] Print an error to stderr like the other shells. Suggested by Roger Leigh. Signed-off-by: Gerrit Pape <pape@smarden.org> [reworded the patch description with information from the bug] Signed-off-by: Andrej Shadura <andrew.shadura@collabora.co.uk> Bug-Debian: http://bugs.debian.org/690473 Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au> Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
-rw-r--r--usr/dash/eval.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/usr/dash/eval.c b/usr/dash/eval.c
index 6652ccc090b32..01bc5234e36a8 100644
--- a/usr/dash/eval.c
+++ b/usr/dash/eval.c
@@ -952,6 +952,8 @@ evalbltin(const struct builtincmd *cmd, int argc, char **argv, int flags)
else
status = (*cmd->builtin)(argc, argv);
flushall();
+ if (outerr(out1))
+ warnx("%s: I/O error", commandname);
status |= outerr(out1);
exitstatus = status;
cmddone: