]> mj.ucw.cz Git - libucw.git/commitdiff
va_lists need not be assignable. Use va_copy() instead.
authorMartin Mares <mj@ucw.cz>
Tue, 30 Aug 2005 21:36:46 +0000 (21:36 +0000)
committerMartin Mares <mj@ucw.cz>
Tue, 30 Aug 2005 21:36:46 +0000 (21:36 +0000)
lib/runcmd.c

index c7fe85c47502e57404469c1b728c8ee12c78123e..dbb3c8a71772c65269d3c5679b6a0e19dba6a862 100644 (file)
@@ -18,7 +18,8 @@
 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 *))
@@ -26,7 +27,7 @@ exec_command_v(byte *cmd, va_list args)
   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;
@@ -72,7 +73,8 @@ echo_command_v(byte *buf, int size, byte *cmd, va_list args)
   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);