X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/84fa865c0c06445140e8b4a0ab10bc46ce65bbf0..5fdf2e706396803f1738f54b7fd65723d39a0fcf:/uidlist.c diff --git a/uidlist.c b/uidlist.c index c520df32..170b9e62 100644 --- a/uidlist.c +++ b/uidlist.c @@ -126,7 +126,7 @@ static int is_in_group(gid_t gid) if (gid == last_in) return last_out; if (ngroups < -1) { - gid_t mygid = getgid(); + gid_t mygid = MY_GID(); ngroups = getgroups(0, 0); /* If that didn't work, perhaps 0 isn't treated specially? */ if (ngroups <= 0) @@ -142,10 +142,16 @@ static int is_in_group(gid_t gid) if (n == ngroups) gidset[ngroups++] = mygid; if (verbose > 3) { + char gidbuf[NGROUPS_MAX*16+32]; + int pos; + sprintf(gidbuf, "process has %d gid%s: ", + ngroups, ngroups == 1? "" : "s"); + pos = strlen(gidbuf); for (n = 0; n < ngroups; n++) { - rprintf(FINFO, "process gid %d: %ld\n", - n, (long)gidset[n]); + sprintf(gidbuf+pos, " %ld", (long)gidset[n]); + pos += strlen(gidbuf+pos); } + rprintf(FINFO, "%s\n", gidbuf); } } @@ -158,8 +164,11 @@ static int is_in_group(gid_t gid) #else static gid_t mygid = GID_NONE; - if (mygid == GID_NONE) - mygid = getgid(); + if (mygid == GID_NONE) { + mygid = MY_GID(); + if (verbose > 3) + rprintf(FINFO, "process has gid %ld\n", (long)mygid); + } return gid == mygid; #endif } @@ -314,8 +323,8 @@ void recv_uid_list(int f, struct file_list *flist) } if (verbose > 3) { for (list = uidlist; list; list = list->next) { - rprintf(FINFO, "uid %s (%ld) maps to %ld\n", - list->name, (long)list->id, + rprintf(FINFO, "uid %ld (%s) maps to %ld\n", + (long)list->id, list->name, (long)list->id2); } } @@ -344,8 +353,8 @@ void recv_uid_list(int f, struct file_list *flist) } if (verbose > 3) { for (list = gidlist; list; list = list->next) { - rprintf(FINFO, "gid %s (%ld) maps to %ld\n", - list->name, (long)list->id, + rprintf(FINFO, "gid %ld (%s) maps to %ld\n", + (long)list->id, list->name, (long)list->id2); } }