summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pkg_install/lib
diff options
context:
space:
mode:
authorkevlo <kevlo@FreeBSD.org>2012-05-29 01:48:06 +0000
committerkevlo <kevlo@FreeBSD.org>2012-05-29 01:48:06 +0000
commit07ebfe1b9c18245d771125096d6654ee06f14c21 (patch)
treeab9b314dc9e2edd5a771820aeac2cbe20228150c /usr.sbin/pkg_install/lib
parent40701fe3e34fea8f946ae14377ff7b45eb936427 (diff)
downloadFreeBSD-src-07ebfe1b9c18245d771125096d6654ee06f14c21.zip
FreeBSD-src-07ebfe1b9c18245d771125096d6654ee06f14c21.tar.gz
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
Diffstat (limited to 'usr.sbin/pkg_install/lib')
-rw-r--r--usr.sbin/pkg_install/lib/exec.c2
-rw-r--r--usr.sbin/pkg_install/lib/msg.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/usr.sbin/pkg_install/lib/exec.c b/usr.sbin/pkg_install/lib/exec.c
index 3647376..c95ac47 100644
--- a/usr.sbin/pkg_install/lib/exec.c
+++ b/usr.sbin/pkg_install/lib/exec.c
@@ -47,6 +47,7 @@ vsystem(const char *fmt, ...)
va_start(args, fmt);
if (vsnprintf(cmd, maxargs, fmt, args) > maxargs) {
warnx("vsystem args are too long");
+ va_end(args);
return 1;
}
#ifdef DEBUG
@@ -82,6 +83,7 @@ vpipe(const char *fmt, ...)
va_start(args, fmt);
if (vsnprintf(cmd, maxargs, fmt, args) > maxargs) {
warnx("vsystem args are too long");
+ va_end(args);
return NULL;
}
#ifdef DEBUG
diff --git a/usr.sbin/pkg_install/lib/msg.c b/usr.sbin/pkg_install/lib/msg.c
index 2b0ee07..57c84d3 100644
--- a/usr.sbin/pkg_install/lib/msg.c
+++ b/usr.sbin/pkg_install/lib/msg.c
@@ -71,5 +71,6 @@ y_or_n(Boolean def, const char *msg, ...)
ch = (def) ? 'Y' : 'N';
}
fclose(tty) ;
+ va_end(args);
return (ch == 'Y') ? TRUE : FALSE;
}
OpenPOWER on IntegriCloud