From: Todd C. Miller Date: Mon, 22 Mar 2010 12:26:05 +0000 (-0400) Subject: Fix setting of groups list X-Git-Tag: SUDO_1_8_0~774 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=7af5cdfaf42bff5545e8f249f2e520f9bfbc60c0;p=sudo Fix setting of groups list --- diff --git a/src/sudo.c b/src/sudo.c index 7b9554955..8a7dc89f4 100644 --- a/src/sudo.c +++ b/src/sudo.c @@ -283,7 +283,7 @@ get_user_groups(struct user_details *ud) #ifdef HAVE_GETGROUPS size_t glsize; char *cp; - int i; + int i, len; if ((ud->ngroups = getgroups(0, NULL)) <= 0) return NULL; @@ -296,8 +296,10 @@ get_user_groups(struct user_details *ud) memcpy(gid_list, "groups=", sizeof("groups=") - 1); cp = gid_list + sizeof("groups=") - 1; for (i = 0; i < ud->ngroups; i++) { - snprintf(cp, glsize - (cp - gid_list), "%lu%s", - (unsigned long)ud->groups[i], i ? "," : ""); + /* XXX - check rval */ + len = snprintf(cp, glsize - (cp - gid_list), "%s%lu", + i ? "," : "", (unsigned long)ud->groups[i]); + cp += len; } #endif return gid_list;