aboutsummaryrefslogtreecommitdiff
path: root/sh.c
diff options
context:
space:
mode:
authorandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-03-10 07:12:12 +0000
committerandersen <andersen@69ca8d6d-28ef-0310-b511-8ec308f3f277>2001-03-10 07:12:12 +0000
commit08c1c99559c99b43f8bd43ebe3c032f1f7cb9730 (patch)
tree8920760c17eff02678dc81ae6e29d6e108f1d86c /sh.c
parentb3e13bba6eb01596eca3e4c29e9abc2bb3ba7ff5 (diff)
downloadbusybox-w32-08c1c99559c99b43f8bd43ebe3c032f1f7cb9730.tar.gz
busybox-w32-08c1c99559c99b43f8bd43ebe3c032f1f7cb9730.tar.bz2
busybox-w32-08c1c99559c99b43f8bd43ebe3c032f1f7cb9730.zip
When using wordexp, only try to use the expand command
when something actually got expanded. Skip it otherwise. -Erik git-svn-id: svn://busybox.net/trunk/busybox@2038 69ca8d6d-28ef-0310-b511-8ec308f3f277
Diffstat (limited to 'sh.c')
-rw-r--r--sh.c26
1 files changed, 14 insertions, 12 deletions
diff --git a/sh.c b/sh.c
index 8f19e526a..d321c929b 100644
--- a/sh.c
+++ b/sh.c
@@ -941,20 +941,22 @@ static int expand_arguments(char *command)
941 return FALSE; 941 return FALSE;
942 } 942 }
943 943
944 /* Convert from char** (one word per string) to a simple char*, 944 if (expand_result.we_wordc > 0) {
945 * but don't overflow command which is BUFSIZ in length */ 945 /* Convert from char** (one word per string) to a simple char*,
946 *command = '\0'; 946 * but don't overflow command which is BUFSIZ in length */
947 while (i < expand_result.we_wordc && total_length < BUFSIZ) { 947 *command = '\0';
948 length=strlen(expand_result.we_wordv[i])+1; 948 while (i < expand_result.we_wordc && total_length < BUFSIZ) {
949 if (BUFSIZ-total_length-length <= 0) { 949 length=strlen(expand_result.we_wordv[i])+1;
950 error_msg(out_of_space); 950 if (BUFSIZ-total_length-length <= 0) {
951 return FALSE; 951 error_msg(out_of_space);
952 return FALSE;
953 }
954 strcat(command+total_length, expand_result.we_wordv[i++]);
955 strcat(command+total_length, " ");
956 total_length+=length;
952 } 957 }
953 strcat(command+total_length, expand_result.we_wordv[i++]); 958 wordfree (&expand_result);
954 strcat(command+total_length, " ");
955 total_length+=length;
956 } 959 }
957 wordfree (&expand_result);
958#else 960#else
959 961
960 /* Ok. They don't have a recent glibc and they don't have uClibc. Chances 962 /* Ok. They don't have a recent glibc and they don't have uClibc. Chances