byte *arg;
while (arg = va_arg(cargs, byte *))
cnt++;
+ va_end(cargs);
char **argv = alloca(sizeof(byte *) * cnt);
argv[0] = cmd;
cnt = 1;
va_copy(cargs, args);
while (arg = va_arg(cargs, byte *))
argv[cnt++] = arg;
+ va_end(cargs);
argv[cnt] = NULL;
execv(cmd, argv);
byte echo[256];
byte *limit = buf + size - 4;
byte *p = buf;
byte *arg = cmd;
- va_list cargs;
- va_copy(cargs, args);
do
{
int l = strlen(arg);
memcpy(p, arg, l);
p += l;
}
- while (arg = va_arg(cargs, byte *));
+ while (arg = va_arg(args, byte *));
*p = 0;
}