summaryrefslogtreecommitdiffstats
path: root/pw/tests
diff options
context:
space:
mode:
authorBaptiste Daroussin <bapt@FreeBSD.org>2015-07-07 21:05:20 +0000
committerBaptiste Daroussin <bapt@FreeBSD.org>2015-07-07 21:05:20 +0000
commit234c04262f119960f79894ca616c3f54905022f5 (patch)
treefeca1e9cbe0d2c9068ecd4a8330c5ecdac68d05c /pw/tests
parent8e992a6723e414140dd80a5ab394be9246bffe37 (diff)
downloadpw-darwin-234c04262f119960f79894ca616c3f54905022f5.tar.gz
pw-darwin-234c04262f119960f79894ca616c3f54905022f5.tar.zst
pw-darwin-234c04262f119960f79894ca616c3f54905022f5.zip
pw: fail if an invalid entry is found while parsing master.passwd and group
PR: 198554 Reported by: diaran <fbsd@centraltech.co.uk> MFC after: 2 days
Diffstat (limited to 'pw/tests')
-rwxr-xr-xpw/tests/pw_useradd.sh26
1 files changed, 26 insertions, 0 deletions
diff --git a/pw/tests/pw_useradd.sh b/pw/tests/pw_useradd.sh
index d059828..32d3b9d 100755
--- a/pw/tests/pw_useradd.sh
+++ b/pw/tests/pw_useradd.sh
@@ -207,6 +207,30 @@ user_add_expiration_body() {
atf_check -s exit:0 ${PW} userdel foo
}
+atf_test_case user_add_invalid_user_entry
+user_add_invalid_user_entry_body() {
+ touch ${HOME}/master.passwd
+ touch ${HOME}/group
+
+ pwd_mkdb -p -d ${HOME} ${HOME}/master.passwd || \
+ atf_fail "generate passwd from master.passwd"
+ atf_check -s exit:0 ${PW} useradd foo
+ echo "foo1:*:1002" >> ${HOME}/master.passwd
+ atf_check -s exit:1 -e match:"Invalid user entry" ${PW} useradd foo2
+}
+
+atf_test_case user_add_invalid_group_entry
+user_add_invalid_group_entry_body() {
+ touch ${HOME}/master.passwd
+ touch ${HOME}/group
+
+ pwd_mkdb -p -d ${HOME} ${HOME}/master.passwd || \
+ atf_fail "generate passwd from master.passwd"
+ atf_check -s exit:0 ${PW} useradd foo
+ echo 'foo1:*:1002' >> group
+ atf_check -s exit:1 -e match:"Invalid group entry" ${PW} useradd foo2
+}
+
atf_init_test_cases() {
atf_add_test_case user_add
atf_add_test_case user_add_noupdate
@@ -225,4 +249,6 @@ atf_init_test_cases() {
atf_add_test_case user_add_password_expiration_date_relative
atf_add_test_case user_add_name_too_long
atf_add_test_case user_add_expiration
+ atf_add_test_case user_add_invalid_user_entry
+ atf_add_test_case user_add_invalid_group_entry
}