svn commit: r285414 - head/usr.sbin/pw
Baptiste Daroussin
bapt at FreeBSD.org
Sat Jul 11 23:56:57 UTC 2015
Author: bapt
Date: Sat Jul 11 23:56:55 2015
New Revision: 285414
URL: https://svnweb.freebsd.org/changeset/base/285414
Log:
Fix regression: ensure when try to create the group and the user with the same
id if possible and nothing in particular was specified
Modified:
head/usr.sbin/pw/pw_user.c
Modified: head/usr.sbin/pw/pw_user.c
==============================================================================
--- head/usr.sbin/pw/pw_user.c Sat Jul 11 23:17:13 2015 (r285413)
+++ head/usr.sbin/pw/pw_user.c Sat Jul 11 23:56:55 2015 (r285414)
@@ -875,7 +875,7 @@ pw_gidpolicy(struct cargs * args, char *
gid = grp->gr_gid; /* Already created? Use it anyway... */
} else {
struct cargs grpargs;
- char tmp[32];
+ gid_t grid = -1;
LIST_INIT(&grpargs);
@@ -888,23 +888,15 @@ pw_gidpolicy(struct cargs * args, char *
* user's name dups an existing group, then the group add
* function will happily handle that case for us and exit.
*/
- if (GETGRGID(prefer) == NULL) {
- snprintf(tmp, sizeof(tmp), "%u", prefer);
- addarg(&grpargs, 'g', tmp);
- }
+ if (GETGRGID(prefer) == NULL)
+ grid = prefer;
if (conf.dryrun) {
gid = pw_groupnext(cnf, true);
} else {
- pw_group(M_ADD, nam, -1, &grpargs);
+ pw_group(M_ADD, nam, grid, &grpargs);
if ((grp = GETGRNAM(nam)) != NULL)
gid = grp->gr_gid;
}
- a_gid = LIST_FIRST(&grpargs);
- while (a_gid != NULL) {
- struct carg *t = LIST_NEXT(a_gid, list);
- LIST_REMOVE(a_gid, list);
- a_gid = t;
- }
}
ENDGRENT();
return gid;
More information about the svn-src-head
mailing list