void NONRET
exec_command_v(byte *cmd, va_list args)
{
- va_list cargs = args;
+ va_list cargs;
+ va_copy(cargs, args);
int cnt = 2;
byte *arg;
while (arg = va_arg(cargs, byte *))
char **argv = alloca(sizeof(byte *) * cnt);
argv[0] = cmd;
cnt = 1;
- cargs = args;
+ va_copy(cargs, args);
while (arg = va_arg(cargs, byte *))
argv[cnt++] = arg;
argv[cnt] = NULL;
byte *limit = buf + size - 4;
byte *p = buf;
byte *arg = cmd;
- va_list cargs = args;
+ va_list cargs;
+ va_copy(cargs, args);
do
{
int l = strlen(arg);