From: Denys Vlasenko Date: Wed, 28 Sep 2016 23:44:17 +0000 (+0200) Subject: hush: fix 'eval ""' handling X-Git-Tag: 1_26_0~235 X-Git-Url: https://git.librecmc.org/?a=commitdiff_plain;h=78c9c736ab13caec3f6c1032e39200fed5580f50;p=oweals%2Fbusybox.git hush: fix 'eval ""' handling Signed-off-by: Denys Vlasenko --- diff --git a/shell/ash_test/ash-misc/eval2.right b/shell/ash_test/ash-misc/eval2.right new file mode 100644 index 000000000..a7ce6ccc7 --- /dev/null +++ b/shell/ash_test/ash-misc/eval2.right @@ -0,0 +1,3 @@ +Zero:0 +Zero:0 +Zero:0 diff --git a/shell/ash_test/ash-misc/eval2.tests b/shell/ash_test/ash-misc/eval2.tests new file mode 100755 index 000000000..6bfb87aa7 --- /dev/null +++ b/shell/ash_test/ash-misc/eval2.tests @@ -0,0 +1,4 @@ +false; eval; echo Zero:$? +false; eval ""; echo Zero:$? +false; eval " +"; echo Zero:$? diff --git a/shell/hush.c b/shell/hush.c index 5698de686..d7d152c10 100644 --- a/shell/hush.c +++ b/shell/hush.c @@ -5679,7 +5679,7 @@ static char* expand_strvec_to_string(char **argv) n++; } } - overlapping_strcpy((char*)list, list[0]); + overlapping_strcpy((char*)list, list[0] ? list[0] : ""); debug_printf_expand("strvec_to_string='%s'\n", (char*)list); return (char*)list; } diff --git a/shell/hush_test/hush-misc/eval2.right b/shell/hush_test/hush-misc/eval2.right new file mode 100644 index 000000000..a7ce6ccc7 --- /dev/null +++ b/shell/hush_test/hush-misc/eval2.right @@ -0,0 +1,3 @@ +Zero:0 +Zero:0 +Zero:0 diff --git a/shell/hush_test/hush-misc/eval2.tests b/shell/hush_test/hush-misc/eval2.tests new file mode 100755 index 000000000..6bfb87aa7 --- /dev/null +++ b/shell/hush_test/hush-misc/eval2.tests @@ -0,0 +1,4 @@ +false; eval; echo Zero:$? +false; eval ""; echo Zero:$? +false; eval " +"; echo Zero:$?