X-Git-Url: http://mj.ucw.cz/gitweb/?a=blobdiff_plain;f=lib%2Fruncmd.c;h=7f373877086137ed93822e24b39915c94ba72bc9;hb=b7b9a3d3d56430caba2f41a2e9cae8ca87dce1d6;hp=dbb3c8a71772c65269d3c5679b6a0e19dba6a862;hpb=937a2180c157e5661ab1459229e9f270a7f5013d;p=libucw.git diff --git a/lib/runcmd.c b/lib/runcmd.c index dbb3c8a7..7f373877 100644 --- a/lib/runcmd.c +++ b/lib/runcmd.c @@ -24,12 +24,14 @@ exec_command_v(byte *cmd, va_list args) 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]; @@ -73,8 +75,6 @@ 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; - va_copy(cargs, args); do { int l = strlen(arg); @@ -89,7 +89,7 @@ echo_command_v(byte *buf, int size, byte *cmd, va_list args) memcpy(p, arg, l); p += l; } - while (arg = va_arg(cargs, byte *)); + while (arg = va_arg(args, byte *)); *p = 0; }