diff options
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:$? |