[Bug 220779] getgroups result is affected by setegid
bugzilla-noreply at freebsd.org
bugzilla-noreply at freebsd.org
Sun Jul 16 17:49:43 UTC 2017
https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=220779
Bug ID: 220779
Summary: getgroups result is affected by setegid
Product: Base System
Version: CURRENT
Hardware: Any
OS: Any
Status: New
Severity: Affects Some People
Priority: ---
Component: standards
Assignee: freebsd-standards at FreeBSD.org
Reporter: muh.muhten at gmail.com
On FreeBSD, the groups applicable to a process are stored in an array with the
egid in [0] and and zero or more (not necessarily distinct) additional gids in
sorted order.
The setgid, setegid, and setregid functions change the egid of a process, but
the process's supplementary group ids are to remain unchanged. Since getgroups,
which claims to conform to IEEE Std 1003.1-2008 (“POSIX.1”), is defined to fill
its second argument with calling process's supplementary group ids, so its
output must not include the egid, which is changed by setgid &c.. The current
implementation fills the second argument with the entire groups array, which
does include the egid in [0].
- "The setgid() function shall not affect the supplementary group list in any
way. Any supplementary group IDs of the calling process shall remain
unchanged."
- "The setegid() function shall not affect the supplementary group list in any
way."
- (ditto for setregid)
- "The getgroups() function shall fill in the array grouplist with the current
supplementary group IDs of the calling process. It is implementation-defined
whether getgroups() also returns the effective group ID in the grouplist
array."
- "A process has up to {NGROUPS_MAX} supplementary group IDs in addition to the
effective group ID."
--
You are receiving this mail because:
You are the assignee for the bug.
More information about the freebsd-standards
mailing list