Skip site navigation (1)Skip section navigation (2)
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>