diff options
author | Denys Vlasenko <vda.linux@googlemail.com> | 2016-09-29 01:44:17 +0200 |
---|---|---|
committer | Denys Vlasenko <vda.linux@googlemail.com> | 2016-09-29 01:44:17 +0200 |
commit | 78c9c736ab13caec3f6c1032e39200fed5580f50 (patch) | |
tree | 0a737fa0bfa652d12afed0613afafb5dcdcde450 /shell | |
parent | 992e0ff7e9a71a85a89d4fb7b4e6ace7ba74e2ba (diff) | |
download | busybox-78c9c736ab13caec3f6c1032e39200fed5580f50.tar.gz |
hush: fix 'eval ""' handling
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
Diffstat (limited to 'shell')
-rw-r--r-- | shell/ash_test/ash-misc/eval2.right | 3 | ||||
-rwxr-xr-x | shell/ash_test/ash-misc/eval2.tests | 4 | ||||
-rw-r--r-- | shell/hush.c | 2 | ||||
-rw-r--r-- | shell/hush_test/hush-misc/eval2.right | 3 | ||||
-rwxr-xr-x | shell/hush_test/hush-misc/eval2.tests | 4 |
5 files changed, 15 insertions, 1 deletions
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:$? |