[Pkg-shadow-commits] r2081 - in upstream/trunk: . src

nekral-guest at alioth.debian.org nekral-guest at alioth.debian.org
Mon Jun 9 19:36:10 UTC 2008


Author: nekral-guest
Date: 2008-06-09 19:36:08 +0000 (Mon, 09 Jun 2008)
New Revision: 2081

Modified:
   upstream/trunk/ChangeLog
   upstream/trunk/NEWS
   upstream/trunk/src/newusers.c
Log:
	* NEWS, src/newusers.c: Implement the -r, --system option.
	* src/newusers.c: Use a bool when possible instead of int
	integers.
	* src/newusers.c: Avoid implicit conversion of pointers / integers
	/ chars to booleans.
	* src/newusers.c: Ignore the return value of pam_end() before
	exiting.
	* src/newusers.c: Ignore return value of setlocale(),
	bindtextdomain(), and textdomain().
	* src/newusers.c: Avoid multi-statements lines.
	* src/newusers.c: Add brackets and parenthesis.


Modified: upstream/trunk/ChangeLog
===================================================================
--- upstream/trunk/ChangeLog	2008-06-09 19:26:19 UTC (rev 2080)
+++ upstream/trunk/ChangeLog	2008-06-09 19:36:08 UTC (rev 2081)
@@ -1,5 +1,19 @@
 2008-06-09  Nicolas François  <nicolas.francois at centraliens.net>
 
+	* NEWS, src/newusers.c: Implement the -r, --system option.
+	* src/newusers.c: Use a bool when possible instead of int
+	integers.
+	* src/newusers.c: Avoid implicit conversion of pointers / integers
+	/ chars to booleans.
+	* src/newusers.c: Ignore the return value of pam_end() before
+	exiting.
+	* src/newusers.c: Ignore return value of setlocale(),
+	bindtextdomain(), and textdomain().
+	* src/newusers.c: Avoid multi-statements lines.
+	* src/newusers.c: Add brackets and parenthesis.
+
+2008-06-09  Nicolas François  <nicolas.francois at centraliens.net>
+
 	* src/gpasswd.c: Use a bool when possible instead of int integers.
 	* src/gpasswd.c: Avoid implicit conversion of pointers / integers
 	/ chars to booleans.

Modified: upstream/trunk/NEWS
===================================================================
--- upstream/trunk/NEWS	2008-06-09 19:26:19 UTC (rev 2080)
+++ upstream/trunk/NEWS	2008-06-09 19:36:08 UTC (rev 2081)
@@ -1,5 +1,11 @@
 $Id$
 
+shadow-4.1.1 -> shadow-4.1.2						UNRELEASED
+
+*** general:
+- newusers
+  * Implement the -r, --system option.
+
 shadow-4.1.1 -> shadow-4.1.2						25-05-2008
 
 *** security:

Modified: upstream/trunk/src/newusers.c
===================================================================
--- upstream/trunk/src/newusers.c	2008-06-09 19:26:19 UTC (rev 2080)
+++ upstream/trunk/src/newusers.c	2008-06-09 19:36:08 UTC (rev 2081)
@@ -66,21 +66,21 @@
  * Global variables
  */
 static char *Prog;
-static int cflg = 0;
-static int rflg = 0;	/* create a system account */
-static int sflg = 0;
+static bool cflg = false;
+static bool rflg = false;	/* create a system account */
+static bool sflg = false;
 
 static char *crypt_method = NULL;
 static long sha_rounds = 5000;
 
-static int is_shadow;
+static bool is_shadow;
 #ifdef SHADOWGRP
-static int is_shadow_grp;
-static int gshadow_locked = 0;
+static bool is_shadow_grp;
+static bool gshadow_locked = false;
 #endif
-static int passwd_locked = 0;
-static int group_locked = 0;
-static int shadow_locked = 0;
+static bool passwd_locked = false;
+static bool group_locked = false;
+static bool shadow_locked = false;
 
 #ifdef USE_PAM
 static pam_handle_t *pamh = NULL;
@@ -277,7 +277,7 @@
 	if (isdigit (uid[0])) {
 		char *endptr;
 		long int i = strtoul (uid, &endptr, 10);
-		if ((*endptr != '\0') && (errno != ERANGE)) {
+		if (('\0' != *endptr) && (ERANGE != errno)) {
 			fprintf (stderr,
 			         _("%s: user ID `%s' is not valid\n"),
 			         Prog, uid);
@@ -338,7 +338,7 @@
 	pwent.pw_dir = "";	/* XXX warning: const */
 	pwent.pw_shell = "";	/* XXX warning: const */
 
-	return !pw_update (&pwent);
+	return (pw_update (&pwent) == 0);
 }
 
 static void update_passwd (struct passwd *pwd, const char *password)
@@ -390,7 +390,7 @@
 	sp = spw_locate (pwd->pw_name);
 	if (NULL != sp) {
 		spent = *sp;
-		if (   (crypt_method != NULL)
+		if (   (NULL != crypt_method)
 		    && (0 == strcmp(crypt_method, "NONE"))) {
 			spent.sp_pwdp = (char *)password;
 		} else {
@@ -398,7 +398,7 @@
 			                                    crypt_arg);
 			spent.sp_pwdp = pw_encrypt (password, salt);
 		}
-		return !spw_update (&spent);
+		return (spw_update (&spent) == 0);
 	}
 
 	/*
@@ -432,7 +432,7 @@
 	spent.sp_expire = -1;
 	spent.sp_flag = -1;
 
-	return !spw_update (&spent);
+	return (spw_update (&spent) == 0);
 }
 
 /*
@@ -450,27 +450,31 @@
 #ifdef USE_SHA_CRYPT
 		{"sha-rounds", required_argument, NULL, 's'},
 #endif
+		{"system", no_argument, NULL, 'r'},
 		{NULL, 0, NULL, '\0'}
 	};
 
 	while ((c = getopt_long (argc, argv,
 #ifdef USE_SHA_CRYPT
-	                     "c:hs:",
+	                     "c:hrs:",
 #else
-	                     "c:h",
+	                     "c:hr",
 #endif
 	                     long_options, &option_index)) != -1) {
 		switch (c) {
 		case 'c':
-			cflg = 1;
+			cflg = true;
 			crypt_method = optarg;
 			break;
 		case 'h':
 			usage ();
 			break;
+		case 'r':
+			rflg = true;
+			break;
 #ifdef USE_SHA_CRYPT
 		case 's':
-			sflg = 1;
+			sflg = true;
 			if (!getlong(optarg, &sha_rounds)) {
 				fprintf (stderr,
 				         _("%s: invalid numeric argument '%s'\n"),
@@ -489,7 +493,7 @@
 	}
 
 	if (argv[optind] != NULL) {
-		if (!freopen (argv[optind], "r", stdin)) {
+		if (freopen (argv[optind], "r", stdin) == NULL) {
 			char buf[BUFSIZ];
 			snprintf (buf, sizeof buf, "%s: %s", Prog, argv[1]);
 			perror (buf);
@@ -560,14 +564,14 @@
 	if (retval == PAM_SUCCESS) {
 		retval = pam_authenticate (pamh, 0);
 		if (retval != PAM_SUCCESS) {
-			pam_end (pamh, retval);
+			(void) pam_end (pamh, retval);
 		}
 	}
 
 	if (retval == PAM_SUCCESS) {
 		retval = pam_acct_mgmt (pamh, 0);
 		if (retval != PAM_SUCCESS) {
-			pam_end (pamh, retval);
+			(void) pam_end (pamh, retval);
 		}
 	}
 
@@ -589,34 +593,34 @@
 	 * modified, or new entries added. The password file is the key - if
 	 * it gets locked, assume the others can be locked right away.
 	 */
-	if (!pw_lock ()) {
+	if (pw_lock () == 0) {
 		fprintf (stderr, _("%s: can't lock /etc/passwd.\n"), Prog);
 		fail_exit (1);
 	}
-	passwd_locked++;
-	if (is_shadow && !spw_lock ()) {
+	passwd_locked = true;
+	if (is_shadow && (spw_lock () == 0)) {
 		fprintf (stderr, _("%s: can't lock /etc/shadow.\n"), Prog);
 		fail_exit (1);
 	}
-	shadow_locked++;
-	if (!gr_lock ()) {
+	shadow_locked = true;
+	if (gr_lock () == 0) {
 		fprintf (stderr, _("%s: can't lock /etc/group.\n"), Prog);
 		fail_exit (1);
 	}
-	group_locked++;
+	group_locked = true;
 #ifdef SHADOWGRP
-	if (is_shadow_grp && !sgr_lock ()) {
+	if (is_shadow_grp && (sgr_lock () == 0)) {
 		fprintf (stderr, _("%s: can't lock /etc/gshadow.\n"), Prog);
 		fail_exit (1);
 	}
-	gshadow_locked++;
+	gshadow_locked = true;
 #endif
 
-	if (   (!pw_open (O_RDWR))
-	    || (is_shadow && !spw_open (O_RDWR))
-	    || !gr_open (O_RDWR)
+	if (   (pw_open (O_RDWR) == 0)
+	    || (is_shadow && (spw_open (O_RDWR) == 0))
+	    || (gr_open (O_RDWR) == 0)
 #ifdef SHADOWGRP
-	    || (is_shadow_grp && !sgr_open(O_RDWR))
+	    || (is_shadow_grp && (sgr_open(O_RDWR) == 0))
 #endif
 	   ) {
 		fprintf (stderr, _("%s: can't open files\n"), Prog);
@@ -629,11 +633,11 @@
  */
 static void close_files (void)
 {
-	if (   (!pw_close ())
-	    || (is_shadow && !spw_close ())
-	    || !gr_close ()
+	if (   (pw_close () == 0)
+	    || (is_shadow && (spw_close () == 0))
+	    || (gr_close () == 0)
 #ifdef SHADOWGRP
-	    || (is_shadow_grp && !sgr_close())
+	    || (is_shadow_grp && (sgr_close() == 0))
 #endif
 	   ) {
 		fprintf (stderr, _("%s: error updating files\n"), Prog);
@@ -641,18 +645,18 @@
 	}
 #ifdef SHADOWGRP
 	if (is_shadow_grp) {
-		(void) sgr_unlock();
-		gshadow_locked--;
+		sgr_unlock();
+		gshadow_locked = false;
 	}
 #endif
-	(void) gr_unlock ();
-	group_locked--;
+	gr_unlock ();
+	group_locked = false;
 	if (is_shadow) {
-		(void) spw_unlock ();
-		shadow_locked--;
+		spw_unlock ();
+		shadow_locked = false;
 	}
-	(void) pw_unlock ();
-	passwd_locked--;
+	pw_unlock ();
+	passwd_locked = false;
 }
 
 int main (int argc, char **argv)
@@ -670,9 +674,9 @@
 
 	Prog = Basename (argv[0]);
 
-	setlocale (LC_ALL, "");
-	bindtextdomain (PACKAGE, LOCALEDIR);
-	textdomain (PACKAGE);
+	(void) setlocale (LC_ALL, "");
+	(void) bindtextdomain (PACKAGE, LOCALEDIR);
+	(void) textdomain (PACKAGE);
 
 	process_flags (argc, argv);
 
@@ -716,7 +720,8 @@
 			fields[nfields] = cp;
 			cp = strchr (cp, ':');
 			if (NULL != cp) {
-				*cp++ = '\0';
+				*cp = '\0';
+				cp++;
 			} else {
 				break;
 			}
@@ -806,27 +811,29 @@
 			errors++;
 			continue;
 		}
-		if (fields[4][0]) {
+		if ('\0' != fields[4][0]) {
 			newpw.pw_gecos = fields[4];
 		}
 
-		if (fields[5][0]) {
+		if ('\0' != fields[5][0]) {
 			newpw.pw_dir = fields[5];
 		}
 
-		if (fields[6][0]) {
+		if ('\0' != fields[6][0]) {
 			newpw.pw_shell = fields[6];
 		}
 
-		if (newpw.pw_dir[0] && access (newpw.pw_dir, F_OK)) {
-			if (mkdir (newpw.pw_dir,
-			           0777 & ~getdef_num ("UMASK",
-			                               GETDEF_DEFAULT_UMASK))) {
+		if (   ('\0' != newpw.pw_dir[0])
+		    && (access (newpw.pw_dir, F_OK) != 0)) {
+			mode_t msk = 0777 & ~getdef_num ("UMASK",
+			                                 GETDEF_DEFAULT_UMASK);
+			if (mkdir (newpw.pw_dir, msk) != 0) {
 				fprintf (stderr,
 				         _("%s: line %d: mkdir failed\n"), Prog,
 				         line);
-			} else if (chown
-				   (newpw.pw_dir, newpw.pw_uid, newpw.pw_gid)) {
+			} else if (chown (newpw.pw_dir,
+			                  newpw.pw_uid,
+			                  newpw.pw_gid) != 0) {
 				fprintf (stderr,
 				         _("%s: line %d: chown failed\n"), Prog,
 				         line);
@@ -836,7 +843,7 @@
 		/*
 		 * Update the password entry with the new changes made.
 		 */
-		if (!pw_update (&newpw)) {
+		if (pw_update (&newpw) == 0) {
 			fprintf (stderr,
 			         _("%s: line %d: can't update entry\n"),
 			         Prog, line);
@@ -852,14 +859,14 @@
 	 * changes to be written out all at once, and then unlocked
 	 * afterwards.
 	 */
-	if (errors) {
+	if (0 != errors) {
 		fprintf (stderr,
 		         _("%s: error detected, changes ignored\n"), Prog);
-		(void) gr_unlock ();
+		gr_unlock ();
 		if (is_shadow) {
 			spw_unlock ();
 		}
-		(void) pw_unlock ();
+		pw_unlock ();
 		fail_exit (1);
 	}
 
@@ -869,7 +876,7 @@
 	nscd_flush_cache ("group");
 
 #ifdef USE_PAM
-	pam_end (pamh, PAM_SUCCESS);
+	(void) pam_end (pamh, PAM_SUCCESS);
 #endif				/* USE_PAM */
 
 	return 0;




More information about the Pkg-shadow-commits mailing list