svn commit: r267970 - head/usr.sbin/pw
Mateusz Guzik
mjg at FreeBSD.org
Fri Jun 27 18:51:19 UTC 2014
Author: mjg
Date: Fri Jun 27 18:51:19 2014
New Revision: 267970
URL: http://svnweb.freebsd.org/changeset/base/267970
Log:
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
Modified:
head/usr.sbin/pw/pw_user.c
Modified: head/usr.sbin/pw/pw_user.c
==============================================================================
--- head/usr.sbin/pw/pw_user.c Fri Jun 27 18:40:14 2014 (r267969)
+++ head/usr.sbin/pw/pw_user.c Fri Jun 27 18:51:19 2014 (r267970)
@@ -438,14 +438,13 @@ pw_user(struct userconf * cnf, int mode,
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);
}
More information about the svn-src-all
mailing list