diff options
Diffstat (limited to 'main/busybox/0001-ash-fix-error-code-regression.patch')
-rw-r--r-- | main/busybox/0001-ash-fix-error-code-regression.patch | 124 |
1 files changed, 0 insertions, 124 deletions
diff --git a/main/busybox/0001-ash-fix-error-code-regression.patch b/main/busybox/0001-ash-fix-error-code-regression.patch deleted file mode 100644 index 31316726ba..0000000000 --- a/main/busybox/0001-ash-fix-error-code-regression.patch +++ /dev/null @@ -1,124 +0,0 @@ -From ea7d2f6ec0596789fc5b2e3fca3b7a602bfa2c26 Mon Sep 17 00:00:00 2001 -From: Ron Yorston <rmy@pobox.com> -Date: Tue, 3 Jan 2017 11:18:23 +0100 -Subject: [PATCH] ash: fix error code regression - -The commit 'ash,hush: set exit code 127 in "sh /does/not/exist" case' -only partly implemented the dash commit '[ERROR] Allow the originator -of EXERROR to set the exit status'. This resulted in incorrect error -codes for a syntax error: - - $ ) - $ echo $? - 0 - -or a redirection error for a special builtin: - - $ rm -f xxx - $ eval cat <xxx - $ echo $? - 0 - -Signed-off-by: Ron Yorston <rmy@pobox.com> -Reported-by: Martijn Dekker <martijn@inlv.org> -Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com> ---- - shell/ash.c | 8 ++++++-- - shell/ash_test/ash-misc/exitcode2.right | 4 ++++ - shell/ash_test/ash-misc/exitcode2.tests | 12 ++++++++++++ - shell/hush_test/hush-misc/exitcode2.right | 4 ++++ - shell/hush_test/hush-misc/exitcode2.tests | 12 ++++++++++++ - 5 files changed, 38 insertions(+), 2 deletions(-) - create mode 100644 shell/ash_test/ash-misc/exitcode2.right - create mode 100755 shell/ash_test/ash-misc/exitcode2.tests - create mode 100644 shell/hush_test/hush-misc/exitcode2.right - create mode 100755 shell/hush_test/hush-misc/exitcode2.tests - -diff --git a/shell/ash.c b/shell/ash.c -index 430e42a7b..7c53946ce 100644 ---- a/shell/ash.c -+++ b/shell/ash.c -@@ -1284,6 +1284,8 @@ ash_msg_and_raise_error(const char *msg, ...) - { - va_list ap; - -+ exitstatus = 2; -+ - va_start(ap, msg); - ash_vmsg_and_raise(EXERROR, msg, ap); - /* NOTREACHED */ -@@ -9588,11 +9590,13 @@ evalcommand(union node *cmd, int flags) - } - - if (status) { -+ bail: -+ exitstatus = status; -+ - /* We have a redirection error. */ - if (spclbltin > 0) - raise_exception(EXERROR); -- bail: -- exitstatus = status; -+ - goto out; - } - -diff --git a/shell/ash_test/ash-misc/exitcode2.right b/shell/ash_test/ash-misc/exitcode2.right -new file mode 100644 -index 000000000..f7cb983c6 ---- /dev/null -+++ b/shell/ash_test/ash-misc/exitcode2.right -@@ -0,0 +1,4 @@ -+./test.sh: line 1: syntax error: unexpected ")" -+Done:2 -+./exitcode2.tests: line 11: can't open does_not_exist: no such file -+Done:1 -diff --git a/shell/ash_test/ash-misc/exitcode2.tests b/shell/ash_test/ash-misc/exitcode2.tests -new file mode 100755 -index 000000000..79a6ebd50 ---- /dev/null -+++ b/shell/ash_test/ash-misc/exitcode2.tests -@@ -0,0 +1,12 @@ -+# syntax error should return status 2 -+cat >test.sh <<EOF -+) -+EOF -+chmod +x test.sh -+$THIS_SH ./test.sh -+echo Done:$? -+rm -f test.sh -+ -+# redirection error with special builtin should return status 1 -+(eval cat <does_not_exist) -+echo Done:$? -diff --git a/shell/hush_test/hush-misc/exitcode2.right b/shell/hush_test/hush-misc/exitcode2.right -new file mode 100644 -index 000000000..0a57b9b1b ---- /dev/null -+++ b/shell/hush_test/hush-misc/exitcode2.right -@@ -0,0 +1,4 @@ -+hush: syntax error: unexpected ) -+Done:2 -+hush: can't open 'does_not_exist': No such file or directory -+Done:1 -diff --git a/shell/hush_test/hush-misc/exitcode2.tests b/shell/hush_test/hush-misc/exitcode2.tests -new file mode 100755 -index 000000000..79a6ebd50 ---- /dev/null -+++ b/shell/hush_test/hush-misc/exitcode2.tests -@@ -0,0 +1,12 @@ -+# syntax error should return status 2 -+cat >test.sh <<EOF -+) -+EOF -+chmod +x test.sh -+$THIS_SH ./test.sh -+echo Done:$? -+rm -f test.sh -+ -+# redirection error with special builtin should return status 1 -+(eval cat <does_not_exist) -+echo Done:$? --- -2.11.0 - |