Date: Wed, 04 Oct 2017 20:33:16 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-standards@FreeBSD.org Subject: [Bug 220779] getgroups result is affected by setegid Message-ID: <bug-220779-15-CQnO4Q4MLF@https.bugs.freebsd.org/bugzilla/> In-Reply-To: <bug-220779-15@https.bugs.freebsd.org/bugzilla/>
index | next in thread | previous in thread | raw e-mail
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220779 paulm <paulm@tetrardus.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |paulm@tetrardus.net --- Comment #5 from paulm <paulm@tetrardus.net> --- The effective GID is stored in cr_groups[0] in the ucred struct. kern_setgroups() writes to cr_groups[0] in the ucred struct. Therefore, the syscall setgroups(int ngroups, const gid_t *gidset) overwrites the effective GID at cr_groups[0] with the first GID in *gidset. (Because setgroups() writes to cr_groups[0], a subsequent call to setegid() will overwrite the supplementary GID at that location. I think this is the symptom Michael Zuo is calling attention to.) Unless I'm confused about something, the implementation of setgroups() should write the supplementary group list starting at an offset of +1 in the cr_groups array in struct ucred in order to preserve the effective GID at cr_groups[0]. -- You are receiving this mail because: You are the assignee for the bug.help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-220779-15-CQnO4Q4MLF>
