svn commit: r241021 - in head:
cddl/contrib/opensolaris/lib/libdtrace/common
cddl/contrib/opensolaris/lib/libzfs/common
contrib/telnet/telnetd usr.bin/csup usr.sbin/pkg_install/lib
usr.sbin/pw
Kevin Lo
kevlo at FreeBSD.org
Fri Sep 28 07:51:31 UTC 2012
Author: kevlo
Date: Fri Sep 28 07:51:30 2012
New Revision: 241021
URL: http://svn.freebsd.org/changeset/base/241021
Log:
Make sure that each va_start has one and only one matching va_end,
especially in error cases.
Modified:
head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_subr.c
head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c
head/contrib/telnet/telnetd/state.c
head/usr.bin/csup/proto.c
head/usr.sbin/pkg_install/lib/exec.c
head/usr.sbin/pw/pwupd.c
Modified: head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_subr.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_subr.c Fri Sep 28 05:30:59 2012 (r241020)
+++ head/cddl/contrib/opensolaris/lib/libdtrace/common/dt_subr.c Fri Sep 28 07:51:30 2012 (r241021)
@@ -678,6 +678,7 @@ dt_printf(dtrace_hdl_t *dtp, FILE *fp, c
dtp->dt_buffered_offs += needed;
assert(dtp->dt_buffered_buf[dtp->dt_buffered_offs] == '\0');
+ va_end(ap);
return (0);
}
Modified: head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c
==============================================================================
--- head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Fri Sep 28 05:30:59 2012 (r241020)
+++ head/cddl/contrib/opensolaris/lib/libzfs/common/libzfs_util.c Fri Sep 28 07:51:30 2012 (r241021)
@@ -368,6 +368,7 @@ zfs_standard_error_fmt(libzfs_handle_t *
case ENOSPC:
case EDQUOT:
zfs_verror(hdl, EZFS_NOSPC, fmt, ap);
+ va_end(ap);
return (-1);
case EEXIST:
@@ -467,6 +468,7 @@ zpool_standard_error_fmt(libzfs_handle_t
case ENOSPC:
case EDQUOT:
zfs_verror(hdl, EZFS_NOSPC, fmt, ap);
+ va_end(ap);
return (-1);
case EAGAIN:
Modified: head/contrib/telnet/telnetd/state.c
==============================================================================
--- head/contrib/telnet/telnetd/state.c Fri Sep 28 05:30:59 2012 (r241020)
+++ head/contrib/telnet/telnetd/state.c Fri Sep 28 07:51:30 2012 (r241021)
@@ -1600,8 +1600,10 @@ output_data(const char *format, ...)
char *buf;
va_start(args, format);
- if ((len = vasprintf(&buf, format, args)) == -1)
+ if ((len = vasprintf(&buf, format, args)) == -1) {
+ va_end(args);
return -1;
+ }
output_datalen(buf, len);
va_end(args);
free(buf);
Modified: head/usr.bin/csup/proto.c
==============================================================================
--- head/usr.bin/csup/proto.c Fri Sep 28 05:30:59 2012 (r241020)
+++ head/usr.bin/csup/proto.c Fri Sep 28 07:51:30 2012 (r241021)
@@ -789,18 +789,24 @@ proto_printf(struct stream *wr, const ch
case '%':
n = stream_write(wr, "%", 1);
- if (n == -1)
+ if (n == -1) {
+ va_end(ap);
return (-1);
+ }
break;
}
- if (rv == -1)
+ if (rv == -1) {
+ va_end(ap);
return (-1);
+ }
fmt = cp + 1;
}
if (*fmt != '\0') {
rv = stream_printf(wr, "%s", fmt);
- if (rv == -1)
+ if (rv == -1) {
+ va_end(ap);
return (-1);
+ }
}
done:
va_end(ap);
Modified: head/usr.sbin/pkg_install/lib/exec.c
==============================================================================
--- head/usr.sbin/pkg_install/lib/exec.c Fri Sep 28 05:30:59 2012 (r241020)
+++ head/usr.sbin/pkg_install/lib/exec.c Fri Sep 28 07:51:30 2012 (r241021)
@@ -93,6 +93,7 @@ vpipe(const char *fmt, ...)
fp = popen(cmd, "r");
if (fp == NULL) {
warnx("popen() failed");
+ va_end(args);
return NULL;
}
get_string(rp, MAXPATHLEN, fp);
Modified: head/usr.sbin/pw/pwupd.c
==============================================================================
--- head/usr.sbin/pw/pwupd.c Fri Sep 28 05:30:59 2012 (r241020)
+++ head/usr.sbin/pw/pwupd.c Fri Sep 28 07:51:30 2012 (r241021)
@@ -102,6 +102,7 @@ pwdb(char *arg,...)
if (WEXITSTATUS(i))
i = EIO;
}
+ va_end(ap);
return i;
}
More information about the svn-src-head
mailing list