svn commit: r285408 - head/usr.sbin/pw

Baptiste Daroussin bapt at FreeBSD.org
Sat Jul 11 21:09:52 UTC 2015


Author: bapt
Date: Sat Jul 11 21:09:50 2015
New Revision: 285408
URL: https://svnweb.freebsd.org/changeset/base/285408

Log:
  check the gecos format early: at the moment the -c option is parsed

Modified:
  head/usr.sbin/pw/pw.c
  head/usr.sbin/pw/pw_user.c
  head/usr.sbin/pw/pwupd.h

Modified: head/usr.sbin/pw/pw.c
==============================================================================
--- head/usr.sbin/pw/pw.c	Sat Jul 11 21:09:43 2015	(r285407)
+++ head/usr.sbin/pw/pw.c	Sat Jul 11 21:09:50 2015	(r285408)
@@ -254,6 +254,9 @@ main(int argc, char *argv[])
 		case 'a':
 			conf.all = true;
 			break;
+		case 'c':
+			conf.gecos = pw_checkname(optarg, 1);
+			break;
 		case 'g':
 			if (which == 0) { /* for user* */
 				addarg(&arglist, 'g', optarg);

Modified: head/usr.sbin/pw/pw_user.c
==============================================================================
--- head/usr.sbin/pw/pw_user.c	Sat Jul 11 21:09:43 2015	(r285407)
+++ head/usr.sbin/pw/pw_user.c	Sat Jul 11 21:09:50 2015	(r285408)
@@ -650,10 +650,9 @@ pw_user(int mode, char *name, long id, s
 	/*
 	 * Shared add/edit code
 	 */
-	if ((arg = getarg(args, 'c')) != NULL) {
-		char	*gecos = pw_checkname(arg->val, 1);
-		if (strcmp(pwd->pw_gecos, gecos) != 0) {
-			pwd->pw_gecos = gecos;
+	if (conf.gecos != NULL) {
+		if (strcmp(pwd->pw_gecos, conf.gecos) != 0) {
+			pwd->pw_gecos = conf.gecos;
 			edited = 1;
 		}
 	}

Modified: head/usr.sbin/pw/pwupd.h
==============================================================================
--- head/usr.sbin/pw/pwupd.h	Sat Jul 11 21:09:43 2015	(r285407)
+++ head/usr.sbin/pw/pwupd.h	Sat Jul 11 21:09:50 2015	(r285408)
@@ -85,6 +85,7 @@ struct pwconf {
 	char		 etcpath[MAXPATHLEN];
 	char		*newname;
 	char		*config;
+	char		*gecos;
 	int		 fd;
 	int		 which;
 	bool		 quiet;


More information about the svn-src-all mailing list