Page MenuHomeFreeBSD

D40642.id123508.diff
No OneTemporary

D40642.id123508.diff

diff --git a/sys/kern/kern_prot.c b/sys/kern/kern_prot.c
--- a/sys/kern/kern_prot.c
+++ b/sys/kern/kern_prot.c
@@ -1404,21 +1404,18 @@
static int
cr_seeothergids(struct ucred *u1, struct ucred *u2)
{
- int i, match;
+ if (see_other_gids == 0) {
+ if (realgroupmember(u1->cr_rgid, u2))
+ return (0);
- if (!see_other_gids) {
- match = 0;
- for (i = 0; i < u1->cr_ngroups; i++) {
- if (groupmember(u1->cr_groups[i], u2))
- match = 1;
- if (match)
- break;
- }
- if (!match) {
- if (priv_check_cred(u1, PRIV_SEEOTHERGIDS) != 0)
- return (ESRCH);
- }
+ for (int i = 1; i < u1->cr_ngroups; i++)
+ if (realgroupmember(u1->cr_groups[i], u2))
+ return (0);
+
+ if (priv_check_cred(u1, PRIV_SEEOTHERGIDS) != 0)
+ return (ESRCH);
}
+
return (0);
}

File Metadata

Mime Type
text/plain
Expires
Tue, Jul 28, 6:56 AM (11 h, 44 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
35638877
Default Alt Text
D40642.id123508.diff (783 B)

Event Timeline