summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Andersen2001-03-15 23:01:19 +0000
committerEric Andersen2001-03-15 23:01:19 +0000
commit4aaefc2a50600f2b2247ec2d607c19896e9cc0df (patch)
tree84b7e2cbe1e3622ea39b6fb6a9a340f5f6c4524f
parentc5b3242d3d0510eaab6dca4a123f222677a1076f (diff)
downloadbusybox-4aaefc2a50600f2b2247ec2d607c19896e9cc0df.zip
busybox-4aaefc2a50600f2b2247ec2d607c19896e9cc0df.tar.gz
Fix from Larry for glob problems.
-Erik
-rw-r--r--lash.c6
-rw-r--r--sh.c6
-rw-r--r--shell/lash.c6
3 files changed, 15 insertions, 3 deletions
diff --git a/lash.c b/lash.c
index a3003ab..6fedfe8 100644
--- a/lash.c
+++ b/lash.c
@@ -1050,10 +1050,14 @@ static int expand_arguments(char *command)
* but don't overflow command which is BUFSIZ in length */
for (i=0; i < expand_result.gl_pathc; i++) {
length=strlen(expand_result.gl_pathv[i]);
- if (BUFSIZ-total_length-length <= 0) {
+ if (total_length+length+1 >= BUFSIZ) {
error_msg(out_of_space);
return FALSE;
}
+ if (i>0) {
+ strcat(command+total_length, " ");
+ total_length+=1;
+ }
strcat(command+total_length, expand_result.gl_pathv[i]);
total_length+=length;
}
diff --git a/sh.c b/sh.c
index a3003ab..6fedfe8 100644
--- a/sh.c
+++ b/sh.c
@@ -1050,10 +1050,14 @@ static int expand_arguments(char *command)
* but don't overflow command which is BUFSIZ in length */
for (i=0; i < expand_result.gl_pathc; i++) {
length=strlen(expand_result.gl_pathv[i]);
- if (BUFSIZ-total_length-length <= 0) {
+ if (total_length+length+1 >= BUFSIZ) {
error_msg(out_of_space);
return FALSE;
}
+ if (i>0) {
+ strcat(command+total_length, " ");
+ total_length+=1;
+ }
strcat(command+total_length, expand_result.gl_pathv[i]);
total_length+=length;
}
diff --git a/shell/lash.c b/shell/lash.c
index a3003ab..6fedfe8 100644
--- a/shell/lash.c
+++ b/shell/lash.c
@@ -1050,10 +1050,14 @@ static int expand_arguments(char *command)
* but don't overflow command which is BUFSIZ in length */
for (i=0; i < expand_result.gl_pathc; i++) {
length=strlen(expand_result.gl_pathv[i]);
- if (BUFSIZ-total_length-length <= 0) {
+ if (total_length+length+1 >= BUFSIZ) {
error_msg(out_of_space);
return FALSE;
}
+ if (i>0) {
+ strcat(command+total_length, " ");
+ total_length+=1;
+ }
strcat(command+total_length, expand_result.gl_pathv[i]);
total_length+=length;
}