When using wordexp, only try to use the expand command
when something actually got expanded. Skip it otherwise. -Erik
This commit is contained in:
parent
78f57460f2
commit
1365bb7861
26
lash.c
26
lash.c
@ -941,20 +941,22 @@ static int expand_arguments(char *command)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Convert from char** (one word per string) to a simple char*,
|
||||
* but don't overflow command which is BUFSIZ in length */
|
||||
*command = '\0';
|
||||
while (i < expand_result.we_wordc && total_length < BUFSIZ) {
|
||||
length=strlen(expand_result.we_wordv[i])+1;
|
||||
if (BUFSIZ-total_length-length <= 0) {
|
||||
error_msg(out_of_space);
|
||||
return FALSE;
|
||||
if (expand_result.we_wordc > 0) {
|
||||
/* Convert from char** (one word per string) to a simple char*,
|
||||
* but don't overflow command which is BUFSIZ in length */
|
||||
*command = '\0';
|
||||
while (i < expand_result.we_wordc && total_length < BUFSIZ) {
|
||||
length=strlen(expand_result.we_wordv[i])+1;
|
||||
if (BUFSIZ-total_length-length <= 0) {
|
||||
error_msg(out_of_space);
|
||||
return FALSE;
|
||||
}
|
||||
strcat(command+total_length, expand_result.we_wordv[i++]);
|
||||
strcat(command+total_length, " ");
|
||||
total_length+=length;
|
||||
}
|
||||
strcat(command+total_length, expand_result.we_wordv[i++]);
|
||||
strcat(command+total_length, " ");
|
||||
total_length+=length;
|
||||
wordfree (&expand_result);
|
||||
}
|
||||
wordfree (&expand_result);
|
||||
#else
|
||||
|
||||
/* Ok. They don't have a recent glibc and they don't have uClibc. Chances
|
||||
|
26
sh.c
26
sh.c
@ -941,20 +941,22 @@ static int expand_arguments(char *command)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Convert from char** (one word per string) to a simple char*,
|
||||
* but don't overflow command which is BUFSIZ in length */
|
||||
*command = '\0';
|
||||
while (i < expand_result.we_wordc && total_length < BUFSIZ) {
|
||||
length=strlen(expand_result.we_wordv[i])+1;
|
||||
if (BUFSIZ-total_length-length <= 0) {
|
||||
error_msg(out_of_space);
|
||||
return FALSE;
|
||||
if (expand_result.we_wordc > 0) {
|
||||
/* Convert from char** (one word per string) to a simple char*,
|
||||
* but don't overflow command which is BUFSIZ in length */
|
||||
*command = '\0';
|
||||
while (i < expand_result.we_wordc && total_length < BUFSIZ) {
|
||||
length=strlen(expand_result.we_wordv[i])+1;
|
||||
if (BUFSIZ-total_length-length <= 0) {
|
||||
error_msg(out_of_space);
|
||||
return FALSE;
|
||||
}
|
||||
strcat(command+total_length, expand_result.we_wordv[i++]);
|
||||
strcat(command+total_length, " ");
|
||||
total_length+=length;
|
||||
}
|
||||
strcat(command+total_length, expand_result.we_wordv[i++]);
|
||||
strcat(command+total_length, " ");
|
||||
total_length+=length;
|
||||
wordfree (&expand_result);
|
||||
}
|
||||
wordfree (&expand_result);
|
||||
#else
|
||||
|
||||
/* Ok. They don't have a recent glibc and they don't have uClibc. Chances
|
||||
|
26
shell/lash.c
26
shell/lash.c
@ -941,20 +941,22 @@ static int expand_arguments(char *command)
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
/* Convert from char** (one word per string) to a simple char*,
|
||||
* but don't overflow command which is BUFSIZ in length */
|
||||
*command = '\0';
|
||||
while (i < expand_result.we_wordc && total_length < BUFSIZ) {
|
||||
length=strlen(expand_result.we_wordv[i])+1;
|
||||
if (BUFSIZ-total_length-length <= 0) {
|
||||
error_msg(out_of_space);
|
||||
return FALSE;
|
||||
if (expand_result.we_wordc > 0) {
|
||||
/* Convert from char** (one word per string) to a simple char*,
|
||||
* but don't overflow command which is BUFSIZ in length */
|
||||
*command = '\0';
|
||||
while (i < expand_result.we_wordc && total_length < BUFSIZ) {
|
||||
length=strlen(expand_result.we_wordv[i])+1;
|
||||
if (BUFSIZ-total_length-length <= 0) {
|
||||
error_msg(out_of_space);
|
||||
return FALSE;
|
||||
}
|
||||
strcat(command+total_length, expand_result.we_wordv[i++]);
|
||||
strcat(command+total_length, " ");
|
||||
total_length+=length;
|
||||
}
|
||||
strcat(command+total_length, expand_result.we_wordv[i++]);
|
||||
strcat(command+total_length, " ");
|
||||
total_length+=length;
|
||||
wordfree (&expand_result);
|
||||
}
|
||||
wordfree (&expand_result);
|
||||
#else
|
||||
|
||||
/* Ok. They don't have a recent glibc and they don't have uClibc. Chances
|
||||
|
Loading…
Reference in New Issue
Block a user