From 39701204cfa0f261beb2dc056024634e4c3afd71 Mon Sep 17 00:00:00 2001 From: Denys Vlasenko Date: Wed, 2 Aug 2017 19:44:05 +0200 Subject: hush: do not accept "if() { echo; }" function def function old new delta parse_stream 2634 2692 +58 msg_and_die_if_script - 21 +21 syntax_error_unexpected_ch 41 46 +5 syntax_error_at 14 18 +4 die_if_script 31 28 -3 setup_redirects 319 308 -11 ------------------------------------------------------------------------------ (add/remove: 1/0 grow/shrink: 3/2 up/down: 88/-14) Total: 74 bytes Signed-off-by: Denys Vlasenko --- shell/hush_test/hush-parsing/groups_and_keywords2.right | 3 +++ shell/hush_test/hush-parsing/groups_and_keywords2.tests | 9 +++++++++ 2 files changed, 12 insertions(+) create mode 100644 shell/hush_test/hush-parsing/groups_and_keywords2.right create mode 100755 shell/hush_test/hush-parsing/groups_and_keywords2.tests (limited to 'shell/hush_test/hush-parsing') diff --git a/shell/hush_test/hush-parsing/groups_and_keywords2.right b/shell/hush_test/hush-parsing/groups_and_keywords2.right new file mode 100644 index 000000000..ae74a5db9 --- /dev/null +++ b/shell/hush_test/hush-parsing/groups_and_keywords2.right @@ -0,0 +1,3 @@ +hush: syntax error: unexpected ) +Fail:2 +hush: syntax error: unexpected ) diff --git a/shell/hush_test/hush-parsing/groups_and_keywords2.tests b/shell/hush_test/hush-parsing/groups_and_keywords2.tests new file mode 100755 index 000000000..ab33b909f --- /dev/null +++ b/shell/hush_test/hush-parsing/groups_and_keywords2.tests @@ -0,0 +1,9 @@ +# This is an error +(eval 'if() { echo; }') +echo Fail:$? +# ^^^^^^ bash prints 1, but interactively it sets $? = 2 +# we print 2 + +# This is an error, and it aborts in script +if() { echo; } +echo Not reached -- cgit v1.2.3