diff options
author | kevlo <kevlo@FreeBSD.org> | 2012-05-29 01:48:06 +0000 |
---|---|---|
committer | kevlo <kevlo@FreeBSD.org> | 2012-05-29 01:48:06 +0000 |
commit | 07ebfe1b9c18245d771125096d6654ee06f14c21 (patch) | |
tree | ab9b314dc9e2edd5a771820aeac2cbe20228150c /usr.sbin/pkg_install/lib | |
parent | 40701fe3e34fea8f946ae14377ff7b45eb936427 (diff) | |
download | FreeBSD-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.c | 2 | ||||
-rw-r--r-- | usr.sbin/pkg_install/lib/msg.c | 1 |
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; } |