From 3b83a22057b71e7df2b960d3997fb4474910f30e Mon Sep 17 00:00:00 2001 From: Wayne Davison Date: Wed, 2 Sep 2009 08:56:34 -0700 Subject: [PATCH] Define and use "our_gid" variable. --- main.c | 2 ++ uidlist.c | 14 ++++---------- 2 files changed, 6 insertions(+), 10 deletions(-) diff --git a/main.c b/main.c index 8c2307a8..da6fafc3 100644 --- a/main.c +++ b/main.c @@ -85,6 +85,7 @@ extern struct file_list *first_flist; extern filter_rule_list daemon_filter_list; uid_t our_uid; +gid_t our_gid; int am_generator = 0; int local_server = 0; int daemon_over_rsh = 0; @@ -1485,6 +1486,7 @@ int main(int argc,char *argv[]) starttime = time(NULL); our_uid = MY_UID(); + our_gid = MY_GID(); am_root = our_uid == 0; memset(&stats, 0, sizeof(stats)); diff --git a/uidlist.c b/uidlist.c index 0122f353..5d3d1f38 100644 --- a/uidlist.c +++ b/uidlist.c @@ -33,6 +33,7 @@ extern int preserve_uid; extern int preserve_gid; extern int preserve_acls; extern int numeric_ids; +extern gid_t our_gid; extern char *usermap; extern char *groupmap; @@ -101,7 +102,6 @@ static int is_in_group(gid_t gid) if (gid == last_in) return last_out; if (ngroups < -1) { - gid_t mygid = MY_GID(); if ((ngroups = getgroups(0, NULL)) < 0) ngroups = 0; gidset = new_array(GETGROUPS_T, ngroups+1); @@ -111,11 +111,11 @@ static int is_in_group(gid_t gid) ngroups = getgroups(ngroups, gidset); /* The default gid might not be in the list on some systems. */ for (n = 0; n < ngroups; n++) { - if (gidset[n] == mygid) + if (gidset[n] == our_gid) break; } if (n == ngroups) - gidset[ngroups++] = mygid; + gidset[ngroups++] = our_gid; if (DEBUG_GTE(OWN, 2)) { int pos; char *gidbuf = new_array(char, ngroups*21+32); @@ -139,13 +139,7 @@ static int is_in_group(gid_t gid) return last_out = 0; #else - static gid_t mygid = GID_NONE; - if (mygid == GID_NONE) { - mygid = MY_GID(); - if (DEBUG_GTE(OWN, 2)) - rprintf(FINFO, "process has gid %u\n", (unsigned)mygid); - } - return gid == mygid; + return gid == our_gid; #endif } -- 2.34.1