diff options
| author | martin <martin@NetBSD.org> | 2020-10-12 10:26:59 +0000 |
|---|---|---|
| committer | martin <martin@NetBSD.org> | 2020-10-12 10:26:59 +0000 |
| commit | 585abc62adb9e700828de9385154881d8cf24162 (patch) | |
| tree | 4b38b2bc24b3f5a193b69374e7e7007d6a9d129f /external | |
| parent | 70059eb1e838f811edbae2d0a2bef0daab572a8a (diff) | |
Pull up following revision(s) (requested by hannken in ticket #1111):
external/cddl/osnet/sys/sys/cred.h: revision 1.8
Stub groupmember() has to test both group list and current group id.
Fixes kern/55675: ZFS mounts do not work with setuid programs
Diffstat (limited to 'external')
| -rw-r--r-- | external/cddl/osnet/sys/sys/cred.h | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/external/cddl/osnet/sys/sys/cred.h b/external/cddl/osnet/sys/sys/cred.h index a75c3954cb9..c3d7f426211 100644 --- a/external/cddl/osnet/sys/sys/cred.h +++ b/external/cddl/osnet/sys/sys/cred.h @@ -1,4 +1,4 @@ -/* $NetBSD: cred.h,v 1.6.2.1 2020/04/29 13:47:51 martin Exp $ */ +/* $NetBSD: cred.h,v 1.6.2.2 2020/10/12 10:26:59 martin Exp $ */ /*- * Copyright (c) 2007 Pawel Jakub Dawidek <pjd@FreeBSD.org> @@ -70,10 +70,12 @@ extern kauth_cred_t cred0; static __inline int groupmember(gid_t gid, cred_t *cr) { - int result; + int result, error; - kauth_cred_ismember_gid(cr, gid, &result); - return result; + error = kauth_cred_ismember_gid(cr, gid, &result); + if (error) + return 0; + return (kauth_cred_getegid(cr) == gid || result); } #endif /* _KERNEL */ |
