diff options
author | bapt <bapt@FreeBSD.org> | 2015-01-26 16:50:42 +0000 |
---|---|---|
committer | bapt <bapt@FreeBSD.org> | 2015-01-26 16:50:42 +0000 |
commit | 798d728a636c7efb6149c352a40e1173234a19e0 (patch) | |
tree | 14b215b716ccad2b7a93358bd09b487f7d025897 /usr.sbin/pw | |
parent | 6258d2aa159b36879a8419a7131374cee9b7a3c9 (diff) | |
download | FreeBSD-src-798d728a636c7efb6149c352a40e1173234a19e0.zip FreeBSD-src-798d728a636c7efb6149c352a40e1173234a19e0.tar.gz |
Revert r277652
uid and gid are never and should never be negative. The pw(8) manpage clearly
states the -u and -g arguments are for uids/gids, hence using negative values is
abusing a bug in former versions of pw(8)
Diffstat (limited to 'usr.sbin/pw')
-rw-r--r-- | usr.sbin/pw/pw_group.c | 6 | ||||
-rw-r--r-- | usr.sbin/pw/pw_user.c | 5 | ||||
-rw-r--r-- | usr.sbin/pw/tests/Makefile | 4 | ||||
-rwxr-xr-x | usr.sbin/pw/tests/pw_groupshow.sh | 19 | ||||
-rwxr-xr-x | usr.sbin/pw/tests/pw_usershow.sh | 19 |
5 files changed, 3 insertions, 50 deletions
diff --git a/usr.sbin/pw/pw_group.c b/usr.sbin/pw/pw_group.c index 51166cd..b20ce88 100644 --- a/usr.sbin/pw/pw_group.c +++ b/usr.sbin/pw/pw_group.c @@ -68,11 +68,7 @@ pw_group(struct userconf * cnf, int mode, struct cargs * args) }; if (a_gid != NULL) { - const char *teststr; - teststr = a_gid->val; - if (*teststr == '-') - teststr++; - if (strspn(teststr, "0123456789") != strlen(teststr)) + if (strspn(a_gid->val, "0123456789") != strlen(a_gid->val)) errx(EX_USAGE, "-g expects a number"); } diff --git a/usr.sbin/pw/pw_user.c b/usr.sbin/pw/pw_user.c index f146b46..483148a 100644 --- a/usr.sbin/pw/pw_user.c +++ b/usr.sbin/pw/pw_user.c @@ -322,10 +322,7 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args) a_name = NULL; } } else { - const char *teststr = a_uid->val; - if (*teststr == '-') - teststr++; - if (strspn(teststr, "0123456789") != strlen(teststr)) + if (strspn(a_uid->val, "0123456789") != strlen(a_uid->val)) errx(EX_USAGE, "-u expects a number"); } diff --git a/usr.sbin/pw/tests/Makefile b/usr.sbin/pw/tests/Makefile index c609884..1283ff2 100644 --- a/usr.sbin/pw/tests/Makefile +++ b/usr.sbin/pw/tests/Makefile @@ -9,11 +9,9 @@ ATF_TESTS_SH= pw_etcdir \ pw_lock \ pw_groupdel \ pw_groupmod \ - pw_groupshow \ pw_useradd \ pw_userdel \ - pw_usermod \ - pw_usershow + pw_usermod .for tp in ${ATF_TESTS_SH} TEST_METADATA.${tp}+= required_user="root" diff --git a/usr.sbin/pw/tests/pw_groupshow.sh b/usr.sbin/pw/tests/pw_groupshow.sh deleted file mode 100755 index 2ba53d6..0000000 --- a/usr.sbin/pw/tests/pw_groupshow.sh +++ /dev/null @@ -1,19 +0,0 @@ -# $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 -} diff --git a/usr.sbin/pw/tests/pw_usershow.sh b/usr.sbin/pw/tests/pw_usershow.sh deleted file mode 100755 index 4703644..0000000 --- a/usr.sbin/pw/tests/pw_usershow.sh +++ /dev/null @@ -1,19 +0,0 @@ -# $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 -} |