summaryrefslogtreecommitdiffstats
path: root/pw/tests
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2015-07-28 21:10:58 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2015-07-28 21:10:58 +0000
commit2ecea1d66f7cf56adf485dc082d7cd3ac361e50b (patch)
treee6e0a268f788f3a18e915694f0b6f32455427035 /pw/tests
parent4bdbd4b33ea7d6b88f1425f711bafd4ab04582c7 (diff)
downloadpw-darwin-2ecea1d66f7cf56adf485dc082d7cd3ac361e50b.tar.gz
pw-darwin-2ecea1d66f7cf56adf485dc082d7cd3ac361e50b.tar.zst
pw-darwin-2ecea1d66f7cf56adf485dc082d7cd3ac361e50b.zip
Check uid/gid used when creating a user/group are not larger than UID_MAX/GID_MAX
PR: 173977 Reported by: nvass@gmx.com
Diffstat (limited to 'pw/tests')
-rw-r--r--pw/tests/Makefile1
-rwxr-xr-xpw/tests/pw_groupadd.sh15
-rwxr-xr-xpw/tests/pw_useradd.sh8
3 files changed, 24 insertions, 0 deletions
diff --git a/pw/tests/Makefile b/pw/tests/Makefile
index 193b8ab..c43285f 100644
--- a/pw/tests/Makefile
+++ b/pw/tests/Makefile
@@ -8,6 +8,7 @@ TESTSDIR= ${TESTSBASE}/usr.sbin/pw
ATF_TESTS_SH= pw_etcdir \
pw_lock \
pw_config \
+ pw_groupadd \
pw_groupdel \
pw_groupmod \
pw_useradd \
diff --git a/pw/tests/pw_groupadd.sh b/pw/tests/pw_groupadd.sh
new file mode 100755
index 0000000..9c8fdf1
--- /dev/null
+++ b/pw/tests/pw_groupadd.sh
@@ -0,0 +1,15 @@
+# $FreeBSD$
+
+# Import helper functions
+. $(atf_get_srcdir)/helper_functions.shin
+
+atf_test_case group_add_gid_too_large
+group_add_gid_too_large_body() {
+ populate_etc_skel
+ atf_check -s exit:64 -e inline:"pw: Bad id '9999999999999': too large\n" \
+ ${PW} groupadd -n test1 -g 9999999999999
+}
+
+atf_init_test_cases() {
+ atf_add_test_case group_add_gid_too_large
+}
diff --git a/pw/tests/pw_useradd.sh b/pw/tests/pw_useradd.sh
index 880dab5..7306387 100755
--- a/pw/tests/pw_useradd.sh
+++ b/pw/tests/pw_useradd.sh
@@ -289,6 +289,13 @@ user_add_uid0_body() {
-s exit:0 ${PW} usershow foo
}
+atf_test_case user_add_uid_too_large
+user_add_uid_too_large_body() {
+ populate_etc_skel
+ atf_check -s exit:64 -e inline:"pw: Bad id '9999999999999': too large\n" \
+ ${PW} useradd -n test1 -u 9999999999999
+}
+
atf_init_test_cases() {
atf_add_test_case user_add
atf_add_test_case user_add_noupdate
@@ -313,4 +320,5 @@ atf_init_test_cases() {
atf_add_test_case user_add_R
atf_add_test_case user_add_skel
atf_add_test_case user_add_uid0
+ atf_add_test_case user_add_uid_too_large
}