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 | |
parent | 992e0ff7e9a71a85a89d4fb7b4e6ace7ba74e2ba (diff) | |
download | busybox-w32-78c9c736ab13caec3f6c1032e39200fed5580f50.tar.gz busybox-w32-78c9c736ab13caec3f6c1032e39200fed5580f50.tar.bz2 busybox-w32-78c9c736ab13caec3f6c1032e39200fed5580f50.zip |
hush: fix 'eval ""' handling
Signed-off-by: Denys Vlasenko <vda.linux@googlemail.com>
-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 @@ | |||
1 | Zero:0 | ||
2 | Zero:0 | ||
3 | 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 @@ | |||
1 | false; eval; echo Zero:$? | ||
2 | false; eval ""; echo Zero:$? | ||
3 | false; eval " | ||
4 | "; 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) | |||
5679 | n++; | 5679 | n++; |
5680 | } | 5680 | } |
5681 | } | 5681 | } |
5682 | overlapping_strcpy((char*)list, list[0]); | 5682 | overlapping_strcpy((char*)list, list[0] ? list[0] : ""); |
5683 | debug_printf_expand("strvec_to_string='%s'\n", (char*)list); | 5683 | debug_printf_expand("strvec_to_string='%s'\n", (char*)list); |
5684 | return (char*)list; | 5684 | return (char*)list; |
5685 | } | 5685 | } |
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 @@ | |||
1 | Zero:0 | ||
2 | Zero:0 | ||
3 | 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 @@ | |||
1 | false; eval; echo Zero:$? | ||
2 | false; eval ""; echo Zero:$? | ||
3 | false; eval " | ||
4 | "; echo Zero:$? | ||