Date: Fri, 28 Sep 2012 07:51:30 +0000 (UTC) From: Kevin Lo <kevlo@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: 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 Message-ID: <201209280751.q8S7pUQ5099349@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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; }
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201209280751.q8S7pUQ5099349>