svn commit: r277652 - in head/usr.sbin/pw: . tests

Baptiste Daroussin bapt at FreeBSD.org
Sat Jan 24 19:13:05 UTC 2015


Author: bapt
Date: Sat Jan 24 19:13:03 2015
New Revision: 277652
URL: https://svnweb.freebsd.org/changeset/base/277652

Log:
  Allow negative numbers in -u and -g options
  
  PR:		196514
  MFC after:	1 week

Added:
  head/usr.sbin/pw/tests/pw_groupshow.sh   (contents, props changed)
  head/usr.sbin/pw/tests/pw_usershow.sh   (contents, props changed)
Modified:
  head/usr.sbin/pw/pw_group.c
  head/usr.sbin/pw/pw_user.c
  head/usr.sbin/pw/tests/Makefile

Modified: head/usr.sbin/pw/pw_group.c
==============================================================================
--- head/usr.sbin/pw/pw_group.c	Sat Jan 24 17:32:45 2015	(r277651)
+++ head/usr.sbin/pw/pw_group.c	Sat Jan 24 19:13:03 2015	(r277652)
@@ -68,7 +68,11 @@ pw_group(struct userconf * cnf, int mode
 	};
 
 	if (a_gid != NULL) {
-		if (strspn(a_gid->val, "0123456789") != strlen(a_gid->val))
+		const char *teststr;
+		teststr = a_gid->val;
+		if (*teststr == '-')
+			teststr++;
+		if (strspn(teststr, "0123456789") != strlen(teststr))
 			errx(EX_USAGE, "-g expects a number");
 	}
 

Modified: head/usr.sbin/pw/pw_user.c
==============================================================================
--- head/usr.sbin/pw/pw_user.c	Sat Jan 24 17:32:45 2015	(r277651)
+++ head/usr.sbin/pw/pw_user.c	Sat Jan 24 19:13:03 2015	(r277652)
@@ -322,7 +322,10 @@ pw_user(struct userconf * cnf, int mode,
 			a_name = NULL;
 		}
 	} else {
-		if (strspn(a_uid->val, "0123456789") != strlen(a_uid->val))
+		const char *teststr = a_uid->val;
+		if (*teststr == '-')
+			teststr++;
+		if (strspn(teststr, "0123456789") != strlen(teststr))
 			errx(EX_USAGE, "-u expects a number");
 	}
 

Modified: head/usr.sbin/pw/tests/Makefile
==============================================================================
--- head/usr.sbin/pw/tests/Makefile	Sat Jan 24 17:32:45 2015	(r277651)
+++ head/usr.sbin/pw/tests/Makefile	Sat Jan 24 19:13:03 2015	(r277652)
@@ -9,9 +9,11 @@ ATF_TESTS_SH=	pw_etcdir \
 		pw_lock \
 		pw_groupdel \
 		pw_groupmod \
+		pw_groupshow \
 		pw_useradd \
 		pw_userdel \
-		pw_usermod
+		pw_usermod \
+		pw_usershow
 
 .for tp in ${ATF_TESTS_SH}
 TEST_METADATA.${tp}+=	required_user="root"

Added: head/usr.sbin/pw/tests/pw_groupshow.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/usr.sbin/pw/tests/pw_groupshow.sh	Sat Jan 24 19:13:03 2015	(r277652)
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+# Import helper functions
+. $(atf_get_srcdir)/helper_functions.shin
+
+
+# Test negative uid are still valid
+# PR: 196514
+atf_test_case show_group_with_negative_number
+show_group_with_negative_number_body() {
+	populate_etc_skel
+	atf_check -s exit:0 \
+		-o inline:"wheel:*:0:root\n" \
+		${PW} groupshow -n wheel -g -1
+}
+
+atf_init_test_cases() {
+	atf_add_test_case show_group_with_negative_number
+}

Added: head/usr.sbin/pw/tests/pw_usershow.sh
==============================================================================
--- /dev/null	00:00:00 1970	(empty, because file is newly added)
+++ head/usr.sbin/pw/tests/pw_usershow.sh	Sat Jan 24 19:13:03 2015	(r277652)
@@ -0,0 +1,19 @@
+# $FreeBSD$
+
+# Import helper functions
+. $(atf_get_srcdir)/helper_functions.shin
+
+
+# Test negative uid are still valid
+# PR: 196514
+atf_test_case show_user_with_negative_number
+show_user_with_negative_number_body() {
+	populate_etc_skel
+	atf_check -s exit:0 \
+		-o inline:"root:*:0:0::0:0:Charlie &:/root:/bin/csh\n" \
+		${PW} usershow -n root -u -1
+}
+
+atf_init_test_cases() {
+	atf_add_test_case show_user_with_negative_number
+}


More information about the svn-src-head mailing list