Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(24)

Unified Diff: fusl/src/passwd/getgrouplist.c

Issue 1714623002: [fusl] clang-format fusl (Closed) Base URL: git@github.com:domokit/mojo.git@master
Patch Set: headers too Created 4 years, 10 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
Index: fusl/src/passwd/getgrouplist.c
diff --git a/fusl/src/passwd/getgrouplist.c b/fusl/src/passwd/getgrouplist.c
index 43e518245f8e6bfdafdbdb2ff5aec92a247798e4..0cf95b0aa401b343442a0871da023659402e3f79 100644
--- a/fusl/src/passwd/getgrouplist.c
+++ b/fusl/src/passwd/getgrouplist.c
@@ -9,72 +9,82 @@
#include <errno.h>
#include "nscd.h"
-int getgrouplist(const char *user, gid_t gid, gid_t *groups, int *ngroups)
-{
- int rv, nlim, ret = -1;
- ssize_t i, n = 1;
- struct group gr;
- struct group *res;
- FILE *f;
- int swap = 0;
- int32_t resp[INITGR_LEN];
- uint32_t *nscdbuf = 0;
- char *buf = 0;
- char **mem = 0;
- size_t nmem = 0;
- size_t size;
- nlim = *ngroups;
- if (nlim >= 1) *groups++ = gid;
+int getgrouplist(const char* user, gid_t gid, gid_t* groups, int* ngroups) {
+ int rv, nlim, ret = -1;
+ ssize_t i, n = 1;
+ struct group gr;
+ struct group* res;
+ FILE* f;
+ int swap = 0;
+ int32_t resp[INITGR_LEN];
+ uint32_t* nscdbuf = 0;
+ char* buf = 0;
+ char** mem = 0;
+ size_t nmem = 0;
+ size_t size;
+ nlim = *ngroups;
+ if (nlim >= 1)
+ *groups++ = gid;
- f = __nscd_query(GETINITGR, user, resp, sizeof resp, &swap);
- if (!f) goto cleanup;
- if (resp[INITGRFOUND]) {
- nscdbuf = calloc(resp[INITGRNGRPS], sizeof(uint32_t));
- if (!nscdbuf) goto cleanup;
- if (!fread(nscdbuf, sizeof(*nscdbuf)*resp[INITGRNGRPS], 1, f)) {
- if (!ferror(f)) errno = EIO;
- goto cleanup;
- }
- if (swap) {
- for (i = 0; i < resp[INITGRNGRPS]; i++)
- nscdbuf[i] = bswap_32(nscdbuf[i]);
- }
- }
- fclose(f);
+ f = __nscd_query(GETINITGR, user, resp, sizeof resp, &swap);
+ if (!f)
+ goto cleanup;
+ if (resp[INITGRFOUND]) {
+ nscdbuf = calloc(resp[INITGRNGRPS], sizeof(uint32_t));
+ if (!nscdbuf)
+ goto cleanup;
+ if (!fread(nscdbuf, sizeof(*nscdbuf) * resp[INITGRNGRPS], 1, f)) {
+ if (!ferror(f))
+ errno = EIO;
+ goto cleanup;
+ }
+ if (swap) {
+ for (i = 0; i < resp[INITGRNGRPS]; i++)
+ nscdbuf[i] = bswap_32(nscdbuf[i]);
+ }
+ }
+ fclose(f);
- f = fopen("/etc/group", "rbe");
- if (!f && errno != ENOENT && errno != ENOTDIR)
- goto cleanup;
+ f = fopen("/etc/group", "rbe");
+ if (!f && errno != ENOENT && errno != ENOTDIR)
+ goto cleanup;
- if (f) {
- while (!(rv = __getgrent_a(f, &gr, &buf, &size, &mem, &nmem, &res)) && res) {
- if (nscdbuf)
- for (i=0; i < resp[INITGRNGRPS]; i++) {
- if (nscdbuf[i] == gr.gr_gid) nscdbuf[i] = gid;
- }
- for (i=0; gr.gr_mem[i] && strcmp(user, gr.gr_mem[i]); i++);
- if (!gr.gr_mem[i]) continue;
- if (++n <= nlim) *groups++ = gr.gr_gid;
- }
- if (rv) {
- errno = rv;
- goto cleanup;
- }
- }
- if (nscdbuf) {
- for(i=0; i < resp[INITGRNGRPS]; i++) {
- if (nscdbuf[i] != gid)
- if(++n <= nlim) *groups++ = nscdbuf[i];
- }
- }
+ if (f) {
+ while (!(rv = __getgrent_a(f, &gr, &buf, &size, &mem, &nmem, &res)) &&
+ res) {
+ if (nscdbuf)
+ for (i = 0; i < resp[INITGRNGRPS]; i++) {
+ if (nscdbuf[i] == gr.gr_gid)
+ nscdbuf[i] = gid;
+ }
+ for (i = 0; gr.gr_mem[i] && strcmp(user, gr.gr_mem[i]); i++)
+ ;
+ if (!gr.gr_mem[i])
+ continue;
+ if (++n <= nlim)
+ *groups++ = gr.gr_gid;
+ }
+ if (rv) {
+ errno = rv;
+ goto cleanup;
+ }
+ }
+ if (nscdbuf) {
+ for (i = 0; i < resp[INITGRNGRPS]; i++) {
+ if (nscdbuf[i] != gid)
+ if (++n <= nlim)
+ *groups++ = nscdbuf[i];
+ }
+ }
- ret = n > nlim ? -1 : n;
- *ngroups = n;
+ ret = n > nlim ? -1 : n;
+ *ngroups = n;
cleanup:
- if (f) fclose(f);
- free(nscdbuf);
- free(buf);
- free(mem);
- return ret;
+ if (f)
+ fclose(f);
+ free(nscdbuf);
+ free(buf);
+ free(mem);
+ return ret;
}

Powered by Google App Engine
This is Rietveld 408576698