mirror of
https://github.com/opnsense/src.git
synced 2026-06-11 01:30:30 -04:00
pw: fix up deletion of users from groups
Previuosly given 'foo,bar' members, removing 'foo' would result in an infinite loop. PR: 191427 Submitted by: Voradesh Yenbut <yenbut cs.washington.edu> MFC after: 1 week
This commit is contained in:
parent
c04cdb5738
commit
75ad9daa46
1 changed files with 3 additions and 4 deletions
|
|
@ -438,14 +438,13 @@ pw_user(struct userconf * cnf, int mode, struct cargs * args)
|
|||
delgrent(GETGRNAM(a_name->val));
|
||||
SETGRENT();
|
||||
while ((grp = GETGRENT()) != NULL) {
|
||||
int i;
|
||||
int i, j;
|
||||
char group[MAXLOGNAME];
|
||||
if (grp->gr_mem != NULL) {
|
||||
for (i = 0; grp->gr_mem[i] != NULL; i++) {
|
||||
if (!strcmp(grp->gr_mem[i], a_name->val)) {
|
||||
while (grp->gr_mem[i] != NULL) {
|
||||
grp->gr_mem[i] = grp->gr_mem[i+1];
|
||||
}
|
||||
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);
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue