Allow negative numbers in -u and -g options
PR: 196514 MFC after: 1 week
This commit is contained in:
parent
2e062600fe
commit
d39bfa5fd5
@ -68,7 +68,11 @@ pw_group(struct userconf * cnf, int mode, struct cargs * args)
|
|||||||
};
|
};
|
||||||
|
|
||||||
if (a_gid != NULL) {
|
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");
|
errx(EX_USAGE, "-g expects a number");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -322,7 +322,10 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args)
|
|||||||
a_name = NULL;
|
a_name = NULL;
|
||||||
}
|
}
|
||||||
} else {
|
} 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");
|
errx(EX_USAGE, "-u expects a number");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -9,9 +9,11 @@ ATF_TESTS_SH= pw_etcdir \
|
|||||||
pw_lock \
|
pw_lock \
|
||||||
pw_groupdel \
|
pw_groupdel \
|
||||||
pw_groupmod \
|
pw_groupmod \
|
||||||
|
pw_groupshow \
|
||||||
pw_useradd \
|
pw_useradd \
|
||||||
pw_userdel \
|
pw_userdel \
|
||||||
pw_usermod
|
pw_usermod \
|
||||||
|
pw_usershow
|
||||||
|
|
||||||
.for tp in ${ATF_TESTS_SH}
|
.for tp in ${ATF_TESTS_SH}
|
||||||
TEST_METADATA.${tp}+= required_user="root"
|
TEST_METADATA.${tp}+= required_user="root"
|
||||||
|
19
usr.sbin/pw/tests/pw_groupshow.sh
Executable file
19
usr.sbin/pw/tests/pw_groupshow.sh
Executable file
@ -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
|
||||||
|
}
|
19
usr.sbin/pw/tests/pw_usershow.sh
Executable file
19
usr.sbin/pw/tests/pw_usershow.sh
Executable file
@ -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
|
||||||
|
}
|
Loading…
Reference in New Issue
Block a user