pw usermod: Properly deal with empty secondary group lists (-G '')
"pw usermod someuser -G ''" is supposed make sure that someuser doesn't have any secondary group memberships. Previouly it was a nop because split_groups() only intitialised "groups" if at least one group was specified. As a result the existing secondary group memberships were kept. PR: 221417 Submitted by: Fabian Keil Obtained from: ElectroBSD MFC after: 1 week Relnotes: yes
This commit is contained in:
parent
bdab1e7024
commit
3dc869c257
Notes:
svn2git
2020-12-20 02:59:44 +00:00
svn path=/head/; revision=322677
@ -1087,10 +1087,10 @@ split_groups(StringList **groups, char *groupsstr)
|
||||
char *p;
|
||||
char tok[] = ", \t";
|
||||
|
||||
for (p = strtok(groupsstr, tok); p != NULL; p = strtok(NULL, tok)) {
|
||||
grp = group_from_name_or_id(p);
|
||||
if (*groups == NULL)
|
||||
*groups = sl_init();
|
||||
for (p = strtok(groupsstr, tok); p != NULL; p = strtok(NULL, tok)) {
|
||||
grp = group_from_name_or_id(p);
|
||||
sl_add(*groups, newstr(grp->gr_name));
|
||||
}
|
||||
}
|
||||
|
@ -128,6 +128,9 @@ user_mod_nogroups_body() {
|
||||
atf_check -s exit:0 ${PW} usermod foo -G test3,test4
|
||||
atf_check -s exit:0 -o inline:"test3\ntest4\n" \
|
||||
awk -F\: '$4 == "foo" { print $1 }' ${HOME}/group
|
||||
atf_check -s exit:0 ${PW} usermod foo -G ""
|
||||
atf_check -s exit:0 -o empty \
|
||||
awk -F\: '$4 == "foo" { print $1 }' ${HOME}/group
|
||||
}
|
||||
|
||||
atf_test_case user_mod_rename
|
||||
|
Loading…
Reference in New Issue
Block a user