From owner-svn-src-projects@FreeBSD.ORG Fri Jun 5 16:43:47 2009 Return-Path: Delivered-To: svn-src-projects@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:4f8:fff6::34]) by hub.freebsd.org (Postfix) with ESMTP id 8F6D2106566B; Fri, 5 Jun 2009 16:43:47 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (svn.freebsd.org [IPv6:2001:4f8:fff6::2c]) by mx1.freebsd.org (Postfix) with ESMTP id 7E47A8FC15; Fri, 5 Jun 2009 16:43:47 +0000 (UTC) (envelope-from brooks@FreeBSD.org) Received: from svn.freebsd.org (localhost [127.0.0.1]) by svn.freebsd.org (8.14.3/8.14.3) with ESMTP id n55Ghlwr031436; Fri, 5 Jun 2009 16:43:47 GMT (envelope-from brooks@svn.freebsd.org) Received: (from brooks@localhost) by svn.freebsd.org (8.14.3/8.14.3/Submit) id n55GhlqE031435; Fri, 5 Jun 2009 16:43:47 GMT (envelope-from brooks@svn.freebsd.org) Message-Id: <200906051643.n55GhlqE031435@svn.freebsd.org> From: Brooks Davis Date: Fri, 5 Jun 2009 16:43:47 +0000 (UTC) To: src-committers@freebsd.org, svn-src-projects@freebsd.org X-SVN-Group: projects MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Cc: Subject: svn commit: r193517 - projects/ngroups/sys/fs/unionfs X-BeenThere: svn-src-projects@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: "SVN commit messages for the src " projects" tree" List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Fri, 05 Jun 2009 16:43:47 -0000 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 */