From e048ba4d803a49ff24d0d8d59d8991117dc18408 Mon Sep 17 00:00:00 2001 From: Alejandro Colomar Date: Thu, 14 Nov 2024 13:52:31 +0100 Subject: [PATCH] lib/, src/: Un-spageticize code Reviewed-by: Serge Hallyn Signed-off-by: Alejandro Colomar --- lib/addgrps.c | 14 +++++--------- src/newgrp.c | 30 +++++++++++++++--------------- 2 files changed, 20 insertions(+), 24 deletions(-) diff --git a/lib/addgrps.c b/lib/addgrps.c index a52dd55d5..809b8e702 100644 --- a/lib/addgrps.c +++ b/lib/addgrps.c @@ -52,19 +52,15 @@ add_groups(const char *list) return -1; } ngroups = getgroups (i, grouplist); - if ( ( (-1 == ngroups) - && (EINVAL != errno)) - || (i > (size_t)ngroups)) { - /* Unexpected failure of getgroups or successful - * reception of the groups */ + if (ngroups == -1 && errno != EINVAL) { + free(grouplist); + return -1; + } + if (i > (size_t)ngroups) { break; } free (grouplist); } - if (ngroups < 0) { - free (grouplist); - return -1; - } added = false; p = buf; diff --git a/src/newgrp.c b/src/newgrp.c index 2549c81ed..e5dc2290b 100644 --- a/src/newgrp.c +++ b/src/newgrp.c @@ -558,25 +558,25 @@ int main (int argc, char **argv) for (int i = 16; /* void */; i *= 2) { grouplist = XMALLOC(i, GETGROUPS_T); ngroups = getgroups (i, grouplist); - if (i > ngroups && !(ngroups == -1 && errno == EINVAL)) { + if (ngroups == -1 && errno != EINVAL) { + perror("getgroups"); +#ifdef WITH_AUDIT + if (group) { + SNPRINTF(audit_buf, "changing new-group=%s", group); + audit_logger(AUDIT_CHGRP_ID, Prog, + audit_buf, NULL, getuid(), 0); + } else { + audit_logger(AUDIT_CHGRP_ID, Prog, + "changing", NULL, getuid(), 0); + } +#endif + exit(EXIT_FAILURE); + } + if (i > (size_t)ngroups) { break; } free (grouplist); } - if (ngroups < 0) { - perror ("getgroups"); -#ifdef WITH_AUDIT - if (group) { - SNPRINTF(audit_buf, "changing new-group=%s", group); - audit_logger (AUDIT_CHGRP_ID, Prog, - audit_buf, NULL, getuid (), 0); - } else { - audit_logger (AUDIT_CHGRP_ID, Prog, - "changing", NULL, getuid (), 0); - } -#endif - exit (EXIT_FAILURE); - } /* * now we put her in the new group. The password file entry for her -- 2.47.2