svn commit: r273792 - in projects/random_number_generator: . etc/mtree usr.sbin/pkg usr.sbin/pw usr.sbin/pw/tests
Mark Murray
markm at FreeBSD.org
Tue Oct 28 17:08:15 UTC 2014
Author: markm
Date: Tue Oct 28 17:08:13 2014
New Revision: 273792
URL: https://svnweb.freebsd.org/changeset/base/273792
Log:
MFC - Tracking commit.
Merging r273776 through r273782.
Modified:
projects/random_number_generator/ObsoleteFiles.inc
projects/random_number_generator/etc/mtree/BSD.debug.dist
projects/random_number_generator/usr.sbin/pkg/Makefile
projects/random_number_generator/usr.sbin/pw/pw_group.c
projects/random_number_generator/usr.sbin/pw/pw_user.c
projects/random_number_generator/usr.sbin/pw/tests/pw_delete.sh
projects/random_number_generator/usr.sbin/pw/tests/pw_modify.sh
Directory Properties:
projects/random_number_generator/ (props changed)
projects/random_number_generator/etc/ (props changed)
Modified: projects/random_number_generator/ObsoleteFiles.inc
==============================================================================
--- projects/random_number_generator/ObsoleteFiles.inc Tue Oct 28 16:27:29 2014 (r273791)
+++ projects/random_number_generator/ObsoleteFiles.inc Tue Oct 28 17:08:13 2014 (r273792)
@@ -38,6 +38,11 @@
# xargs -n1 | sort | uniq -d;
# done
+# 20141028: debug files accidentally installed as directory name
+OLD_FILES+=usr/lib/debug/usr/lib/i18n
+OLD_FILES+=usr/lib/debug/usr/lib/private
+OLD_FILES+=usr/lib/debug/usr/lib32/i18n
+OLD_FILES+=usr/lib/debug/usr/lib32/private
# 20141015: OpenSSL 1.0.1j import
OLD_FILES+=usr/share/openssl/man/man3/CMS_sign_add1_signer.3.gz
# 20140922: sleepq_calc_signal_retval.9 and sleepq_catch_signals.9 removed
Modified: projects/random_number_generator/etc/mtree/BSD.debug.dist
==============================================================================
--- projects/random_number_generator/etc/mtree/BSD.debug.dist Tue Oct 28 16:27:29 2014 (r273791)
+++ projects/random_number_generator/etc/mtree/BSD.debug.dist Tue Oct 28 17:08:13 2014 (r273792)
@@ -26,8 +26,16 @@
lib
engines
..
+ i18n
+ ..
+ private
+ ..
..
lib32
+ i18n
+ ..
+ private
+ ..
..
libexec
bsdinstall
Modified: projects/random_number_generator/usr.sbin/pkg/Makefile
==============================================================================
--- projects/random_number_generator/usr.sbin/pkg/Makefile Tue Oct 28 16:27:29 2014 (r273791)
+++ projects/random_number_generator/usr.sbin/pkg/Makefile Tue Oct 28 17:08:13 2014 (r273792)
@@ -6,7 +6,7 @@ MAN= pkg.7
CFLAGS+=-I${.CURDIR}/../../contrib/libucl/include
.PATH: ${.CURDIR}/../../contrib/libucl/include
-DPADD= ${LIBARCHIVE} ${LIBELF} ${LIBFETCH} ${LIBUCL} ${LIBSBUF} ${LIBSSL} \
+DPADD= ${LIBARCHIVE} ${LIBFETCH} ${LIBUCL} ${LIBSBUF} ${LIBSSL} \
${LIBCRYPTO} ${LIBM}
LDADD= -larchive -lfetch ${LDUCL} -lsbuf -lssl -lcrypto -lm
USEPRIVATELIB= ucl
Modified: projects/random_number_generator/usr.sbin/pw/pw_group.c
==============================================================================
--- projects/random_number_generator/usr.sbin/pw/pw_group.c Tue Oct 28 16:27:29 2014 (r273791)
+++ projects/random_number_generator/usr.sbin/pw/pw_group.c Tue Oct 28 17:08:13 2014 (r273792)
@@ -67,6 +67,11 @@ pw_group(struct userconf * cnf, int mode
NULL
};
+ if (a_gid != NULL) {
+ if (strspn(a_gid->val, "0123456789") != strlen(a_gid->val))
+ errx(EX_USAGE, "-g expects a number");
+ }
+
if (mode == M_LOCK || mode == M_UNLOCK)
errx(EX_USAGE, "'lock' command is not available for groups");
Modified: projects/random_number_generator/usr.sbin/pw/pw_user.c
==============================================================================
--- projects/random_number_generator/usr.sbin/pw/pw_user.c Tue Oct 28 16:27:29 2014 (r273791)
+++ projects/random_number_generator/usr.sbin/pw/pw_user.c Tue Oct 28 17:08:13 2014 (r273792)
@@ -751,7 +751,25 @@ pw_user(struct userconf * cnf, int mode,
*/
if (mode == M_ADD || getarg(args, 'G') != NULL) {
- int i;
+ int i, j;
+ /* First remove the user from all group */
+ SETGRENT();
+ while ((grp = GETGRENT()) != NULL) {
+ char group[MAXLOGNAME];
+ if (grp->gr_mem == NULL)
+ continue;
+ for (i = 0; grp->gr_mem[i] != NULL; i++) {
+ if (strcmp(grp->gr_mem[i] , pwd->pw_name) != 0)
+ continue;
+ for (j = i; grp->gr_mem[j] != NULL ; j++)
+ grp->gr_mem[j] = grp->gr_mem[j+1];
+ strlcpy(group, grp->gr_name, MAXLOGNAME);
+ chggrent(group, grp);
+ }
+ }
+ ENDGRENT();
+
+ /* now add to group where needed */
for (i = 0; cnf->groups[i] != NULL; i++) {
grp = GETGRNAM(cnf->groups[i]);
grp = gr_add(grp, pwd->pw_name);
Modified: projects/random_number_generator/usr.sbin/pw/tests/pw_delete.sh
==============================================================================
--- projects/random_number_generator/usr.sbin/pw/tests/pw_delete.sh Tue Oct 28 16:27:29 2014 (r273791)
+++ projects/random_number_generator/usr.sbin/pw/tests/pw_delete.sh Tue Oct 28 17:08:13 2014 (r273792)
@@ -18,7 +18,19 @@ rmuser_seperate_group_body() {
pw -V ${HOME} userdel test || atf_fail "delete the user"
}
+atf_test_case group_do_not_delete_wheel_if_group_unkown
+group_do_not_delete_wheel_if_group_unkown_head() {
+ atf_set "descr" "Make sure we do not consider as gid 0 an unknown group"
+}
+
+group_do_not_delete_wheel_if_group_unkown_body() {
+ populate_etc_skel
+ atf_check -s exit:0 -o inline:"wheel:*:0:root\n" -x pw -V ${HOME} groupshow wheel
+ atf_check -e inline:"pw: -g expects a number\n" -s exit:64 -x pw -V ${HOME} groupdel -g I_do_not_exist
+ atf_check -s exit:0 -o "wheel:*:0:root\n" -x pw -V ${HOME} groupshow wheel
+}
atf_init_test_cases() {
atf_add_test_case rmuser_seperate_group
+ atf_add_test_case group_do_not_delete_wheel_if_group_unkown
}
Modified: projects/random_number_generator/usr.sbin/pw/tests/pw_modify.sh
==============================================================================
--- projects/random_number_generator/usr.sbin/pw/tests/pw_modify.sh Tue Oct 28 16:27:29 2014 (r273791)
+++ projects/random_number_generator/usr.sbin/pw/tests/pw_modify.sh Tue Oct 28 17:08:13 2014 (r273792)
@@ -38,8 +38,29 @@ groupmod_bug_193704_body() {
atf_check -s exit:65 -e match:"^pw: unknown group" -x pw -V ${HOME} groupshow test
}
+atf_test_case usermod_bug_185666
+usermod_bug_185666_head() {
+ atf_set "descr" "Regression test for the #185666 bug"
+}
+
+usermod_bug_185666_body() {
+ populate_etc_skel
+ atf_check -s exit:0 -x pw -V ${HOME} useradd testuser
+ atf_check -s exit:0 -x pw -V ${HOME} groupadd testgroup
+ atf_check -s exit:0 -x pw -V ${HOME} groupadd testgroup2
+ atf_check -s exit:0 -x pw -V ${HOME} usermod testuser -G testgroup
+ atf_check -o inline:"testuser:*:1001:\n" -x pw -V${HOME} groupshow testuser
+ atf_check -o inline:"testgroup:*:1002:testuser\n" -x pw -V ${HOME} groupshow testgroup
+ atf_check -o inline:"testgroup2:*:1003:\n" -x pw -V${HOME} groupshow testgroup2
+ atf_check -s exit:0 -x pw -V ${HOME} usermod testuser -G testgroup2
+ atf_check -o inline:"testuser:*:1001:\n" -x pw -V ${HOME} groupshow testuser
+ atf_check -o inline:"testgroup:*:1002:\n" -x pw -V ${HOME} groupshow testgroup
+ atf_check -o inline:"testgroup2:*:1003:testuser\n" -x pw -V ${HOME} groupshow testgroup2
+}
+
atf_init_test_cases() {
atf_add_test_case groupmod_user
atf_add_test_case groupmod_invalid_user
atf_add_test_case groupmod_bug_193704
+ atf_add_test_case usermod_bug_185666
}
More information about the svn-src-projects
mailing list