Sophie

Sophie

distrib > Mageia > 5 > i586 > media > core-updates-src > by-pkgid > 142607d0abaf9468861f35b55ff368d6 > files > 9

shadow-utils-4.2.1-6.1.mga5.src.rpm

--- shadow-4.1.4.2/libmisc/chkname.c.dot	2009-04-28 21:14:04.000000000 +0200
+++ shadow-4.1.4.2/libmisc/chkname.c	2009-11-23 16:26:32.000000000 +0100
@@ -49,18 +49,24 @@
 static bool is_valid_name (const char *name)
 {
 	/*
-	 * User/group names must match [a-z_][a-z0-9_-]*[$]
+ 	 * User/group names must match gnu e-regex:
+ 	 * [a-zA-Z0-9_.][a-zA-Z0-9_.-]{0,30}[a-zA-Z0-9_.$-]?
 	 */
 	if (('\0' == *name) ||
-	    !((('a' <= *name) && ('z' >= *name)) || ('_' == *name))) {
+	    !((('a' <= *name) && ('z' >= *name)) || 
+	      (('A' <= *name) && ('Z' >= *name)) || 
+	      (('0' <= *name) && ('9' >= *name)) || 
+	       ('_' == *name) || ('.' == *name))) {
 		return false;
 	}
 
 	while ('\0' != *++name) {
 		if (!(( ('a' <= *name) && ('z' >= *name) ) ||
+		      ( ('A' <= *name) && ('Z' >= *name) ) ||
 		      ( ('0' <= *name) && ('9' >= *name) ) ||
 		      ('_' == *name) ||
 		      ('-' == *name) ||
+		      ('.' == *name) ||
 		      ( ('$' == *name) && ('\0' == *(name + 1)) )
 		     )) {
 			return false;