Date: Fri, 5 Jun 2009 16:43:47 +0000 (UTC) From: Brooks Davis <brooks@FreeBSD.org> To: src-committers@freebsd.org, svn-src-projects@freebsd.org Subject: svn commit: r193517 - projects/ngroups/sys/fs/unionfs Message-ID: <200906051643.n55GhlqE031435@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
Author: brooks Date: Fri Jun 5 16:43:47 2009 New Revision: 193517 URL: http://svn.freebsd.org/changeset/base/193517 Log: Use groupmember() instead of hand rolling our own implementation. Modified: projects/ngroups/sys/fs/unionfs/union_vnops.c Modified: projects/ngroups/sys/fs/unionfs/union_vnops.c ============================================================================== --- projects/ngroups/sys/fs/unionfs/union_vnops.c Fri Jun 5 16:16:07 2009 (r193516) +++ projects/ngroups/sys/fs/unionfs/union_vnops.c Fri Jun 5 16:43:47 2009 (r193517) @@ -638,7 +638,6 @@ unionfs_check_corrected_access(accmode_t uid_t uid; /* upper side vnode's uid */ gid_t gid; /* upper side vnode's gid */ u_short vmode; /* upper side vnode's mode */ - gid_t *gp; u_short mask; mask = 0; @@ -659,17 +658,14 @@ unionfs_check_corrected_access(accmode_t /* check group */ count = 0; - gp = cred->cr_groups; - for (; count < cred->cr_ngroups; count++, gp++) { - if (gid == *gp) { - if (accmode & VEXEC) - mask |= S_IXGRP; - if (accmode & VREAD) - mask |= S_IRGRP; - if (accmode & VWRITE) - mask |= S_IWGRP; - return ((vmode & mask) == mask ? 0 : EACCES); - } + if (groupmember(gid, cred)) { + if (accmode & VEXEC) + mask |= S_IXGRP; + if (accmode & VREAD) + mask |= S_IRGRP; + if (accmode & VWRITE) + mask |= S_IWGRP; + return ((vmode & mask) == mask ? 0 : EACCES); } /* check other */
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200906051643.n55GhlqE031435>