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

Nicolas FRANCOIS nekral-guest at alioth.debian.org
Fri Apr 10 22:33:50 UTC 2009


Author: nekral-guest
Date: 2009-04-10 22:33:50 +0000 (Fri, 10 Apr 2009)
New Revision: 2607

Modified:
   upstream/trunk/ChangeLog
   upstream/trunk/src/useradd.c
Log:
	* src/useradd.c: Use getlong instead of get_number.

Modified: upstream/trunk/ChangeLog
===================================================================
--- upstream/trunk/ChangeLog	2009-04-10 22:33:43 UTC (rev 2606)
+++ upstream/trunk/ChangeLog	2009-04-10 22:33:50 UTC (rev 2607)
@@ -1,5 +1,9 @@
 2009-04-06  Nicolas François  <nicolas.francois at centraliens.net>
 
+	* src/useradd.c: Use getlong instead of get_number.
+
+2009-04-06  Nicolas François  <nicolas.francois at centraliens.net>
+
 	* src/usermod.c: Re-indent.
 	* src/usermod.c: Specifying a inactivity value < -1 is not valid.
 

Modified: upstream/trunk/src/useradd.c
===================================================================
--- upstream/trunk/src/useradd.c	2009-04-10 22:33:43 UTC (rev 2606)
+++ upstream/trunk/src/useradd.c	2009-04-10 22:33:50 UTC (rev 2607)
@@ -170,7 +170,6 @@
 /* local function prototypes */
 static void fail_exit (int);
 static struct group *getgr_nam_gid (const char *);
-static long get_number (const char *);
 static void get_defaults (void);
 static void show_defaults (void);
 static int set_defaults (void);
@@ -281,22 +280,6 @@
 	return xgetgrnam (grname);
 }
 
-static long get_number (const char *numstr)
-{
-	long val;
-	char *endptr;
-
-	errno = 0;
-	val = strtol (numstr, &endptr, 10);
-	if (('\0' == *numstr) || ('\0' != *endptr) || (ERANGE == errno)) {
-		fprintf (stderr,
-		         _("%s: invalid numeric argument '%s'\n"),
-		         Prog, numstr);
-		exit (E_BAD_ARG);
-	}
-	return val;
-}
-
 #define MATCH(x,y) (strncmp((x),(y),strlen(y)) == 0)
 
 /*
@@ -1053,15 +1036,21 @@
 				eflg = true;
 				break;
 			case 'f':
-				def_inactive = get_number (optarg);
+				if (   (getlong (optarg, &def_inactive) == 0)
+				    || (def_inactive < -1)) {
+					fprintf (stderr,
+					         _("%s: invalid numeric argument '%s'\n"),
+					         Prog, optarg);
+					usage ();
+				}
 				/*
-				 * -f -1 is allowed - it's a no-op without /etc/shadow
+				 * -f -1 is allowed
+				 * it's a no-op without /etc/shadow
 				 */
 				if ((-1 != def_inactive) && !is_shadow_pwd) {
 					fprintf (stderr,
-						 _
-						 ("%s: shadow passwords required for -f\n"),
-						 Prog);
+					         _("%s: shadow passwords required for -f\n"),
+					         Prog);
 					exit (E_USAGE);
 				}
 				fflg = true;




More information about the Pkg-shadow-commits mailing list