From: Alejandro Colomar Date: Thu, 14 Nov 2024 12:47:12 +0000 (+0100) Subject: lib/, src/: Reduce scope of variables X-Git-Tag: 4.17.3~52 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=3ccb098673fbc5b9ca3d0dd13e01e99c482502b6;p=thirdparty%2Fshadow.git lib/, src/: Reduce scope of variables Reviewed-by: Serge Hallyn Signed-off-by: Alejandro Colomar --- diff --git a/lib/addgrps.c b/lib/addgrps.c index 9eb59c583..a52dd55d5 100644 --- a/lib/addgrps.c +++ b/lib/addgrps.c @@ -34,12 +34,10 @@ int add_groups(const char *list) { GETGROUPS_T *grouplist; - size_t i; int ngroups; bool added; char *g, *p; char buf[1024]; - int ret; FILE *shadow_logfd = log_get_logfd(); if (strlen (list) >= sizeof (buf)) { @@ -48,8 +46,7 @@ add_groups(const char *list) } strcpy (buf, list); - i = 16; - for (;;) { + for (size_t i = 16; /* void */; i *= 2) { grouplist = MALLOC(i, GETGROUPS_T); if (NULL == grouplist) { return -1; @@ -62,9 +59,7 @@ add_groups(const char *list) * reception of the groups */ break; } - /* not enough room, so try allocating a larger buffer */ free (grouplist); - i *= 2; } if (ngroups < 0) { free (grouplist); @@ -74,7 +69,8 @@ add_groups(const char *list) added = false; p = buf; while (NULL != (g = strsep(&p, ",:"))) { - struct group *grp; + size_t i; + struct group *grp; grp = getgrnam(g); /* local, no need for xgetgrnam */ if (NULL == grp) { @@ -102,6 +98,8 @@ add_groups(const char *list) } if (added) { + int ret; + ret = setgroups (ngroups, grouplist); free (grouplist); return ret; diff --git a/src/newgrp.c b/src/newgrp.c index 11194c873..2549c81ed 100644 --- a/src/newgrp.c +++ b/src/newgrp.c @@ -370,7 +370,6 @@ static void syslog_sg (const char *name, const char *group) int main (int argc, char **argv) { bool initflag = false; - int i; bool is_member = false; bool cflag = false; int err = 0; @@ -556,16 +555,13 @@ int main (int argc, char **argv) * set. */ /* don't use getgroups(0, 0) - it doesn't work on some systems */ - i = 16; - for (;;) { + for (int i = 16; /* void */; i *= 2) { grouplist = XMALLOC(i, GETGROUPS_T); ngroups = getgroups (i, grouplist); if (i > ngroups && !(ngroups == -1 && errno == EINVAL)) { break; } - /* not enough room, so try allocating a larger buffer */ free (grouplist); - i *= 2; } if (ngroups < 0) { perror ("getgroups"); @@ -632,7 +628,7 @@ int main (int argc, char **argv) * database. However getgroups() will return the group. So * if she is listed there already it is ok to grant membership. */ - for (i = 0; i < ngroups; i++) { + for (int i = 0; i < ngroups; i++) { if (grp->gr_gid == grouplist[i]) { is_member = true; break; @@ -689,6 +685,7 @@ int main (int argc, char **argv) * If the group doesn't fit, I'll complain loudly and skip this * part. */ + int i; for (i = 0; i < ngroups; i++) { if (gid == grouplist[i]) { break;