Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Mar 2013 00:36:33 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r247861 - head/sbin/mount_udf
Message-ID:  <201303060036.r260aXkA092627@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Wed Mar  6 00:36:33 2013
New Revision: 247861
URL: http://svnweb.freebsd.org/changeset/base/247861

Log:
  Use build_iovec() to make it less cryptic.  This also fixes warnings.

Modified:
  head/sbin/mount_udf/Makefile
  head/sbin/mount_udf/mount_udf.c

Modified: head/sbin/mount_udf/Makefile
==============================================================================
--- head/sbin/mount_udf/Makefile	Tue Mar  5 23:53:37 2013	(r247860)
+++ head/sbin/mount_udf/Makefile	Wed Mar  6 00:36:33 2013	(r247861)
@@ -9,7 +9,6 @@ LDADD=	-lkiconv
 MOUNT=	${.CURDIR}/../mount
 CFLAGS+= -I${MOUNT} -I${.CURDIR}/../../sys
 .PATH:	${MOUNT}
-WARNS?= 1
 
 # Needs to be dynamically linked for optional dlopen() access to
 # userland libiconv

Modified: head/sbin/mount_udf/mount_udf.c
==============================================================================
--- head/sbin/mount_udf/mount_udf.c	Tue Mar  5 23:53:37 2013	(r247860)
+++ head/sbin/mount_udf/mount_udf.c	Wed Mar  6 00:36:33 2013	(r247861)
@@ -73,14 +73,15 @@ void	usage(void);
 int
 main(int argc, char **argv)
 {
-	struct iovec iov[12];
-	int ch, i, mntflags, udf_flags;
-	char *dev, *dir, mntpath[MAXPATHLEN];
-	char *cs_disk, *cs_local;
-	int verbose;
+	char mntpath[MAXPATHLEN];
+	char fstype[] = "udf";
+	struct iovec *iov;
+	char *cs_disk, *cs_local, *dev, *dir;
+	int ch, i, iovlen, mntflags, udf_flags, verbose;
 
-	i = mntflags = udf_flags = verbose = 0;
+	i = iovlen = mntflags = udf_flags = verbose = 0;
 	cs_disk = cs_local = NULL;
+	iov = NULL;
 	while ((ch = getopt(argc, argv, "o:vC:")) != -1)
 		switch (ch) {
 		case 'o':
@@ -120,32 +121,13 @@ main(int argc, char **argv)
 	 */
 	mntflags |= MNT_RDONLY;
 
-	iov[i].iov_base = "fstype";
-	iov[i++].iov_len = sizeof("fstype");
-	iov[i].iov_base = "udf";
-	iov[i].iov_len = strlen(iov[i].iov_base) + 1;
-	i++;
-	iov[i].iov_base = "fspath";
-	iov[i++].iov_len = sizeof("fspath");
-	iov[i].iov_base = mntpath;
-	iov[i++].iov_len = strlen(mntpath) + 1;
-	iov[i].iov_base = "from";
-	iov[i++].iov_len = sizeof("from");
-	iov[i].iov_base = dev;
-	iov[i++].iov_len = strlen(dev) + 1;
-	iov[i].iov_base = "flags";
-	iov[i++].iov_len = sizeof("flags");
-	iov[i].iov_base = &udf_flags;
-	iov[i++].iov_len = sizeof(udf_flags);
+	build_iovec(&iov, &iovlen, "fstype", fstype, (size_t)-1);
+	build_iovec(&iov, &iovlen, "fspath", mntpath, (size_t)-1);
+	build_iovec(&iov, &iovlen, "from", dev, (size_t)-1);
+	build_iovec(&iov, &iovlen, "flags", &udf_flags, sizeof(udf_flags));
 	if (udf_flags & UDFMNT_KICONV) {
-		iov[i].iov_base = "cs_disk";
-		iov[i++].iov_len = sizeof("cs_disk");
-		iov[i].iov_base = cs_disk;
-		iov[i++].iov_len = strlen(cs_disk) + 1;
-		iov[i].iov_base = "cs_local";
-		iov[i++].iov_len = sizeof("cs_local");
-		iov[i].iov_base = cs_local;
-		iov[i++].iov_len = strlen(cs_local) + 1;
+		build_iovec(&iov, &iovlen, "cs_disk", cs_disk, (size_t)-1);
+		build_iovec(&iov, &iovlen, "cs_local", cs_local, (size_t)-1);
 	}
 	if (nmount(iov, i, mntflags) < 0)
 		err(1, "%s", dev);



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201303060036.r260aXkA092627>