From: Chaskiel M Grundman Date: Sat, 19 Nov 2005 03:59:08 +0000 (+0000) Subject: STABLE14-macos-allow-cached-stat-access-20051118 X-Git-Tag: openafs-stable-1_4_1-rc2~25 X-Git-Url: https://git.michaelhowe.org/gitweb/?a=commitdiff_plain;h=1b55df7d51bda2f38b1de276c8b8593e5637dbc8;p=packages%2Fo%2Fopenafs.git STABLE14-macos-allow-cached-stat-access-20051118 FIXES 23257 allow cached stat info to be accessed for directories where a user has only "l" (cherry picked from commit 54ad6e769e1362ad5a81c0ef91c49babad9a37f1) --- diff --git a/src/afs/DARWIN/osi_vnodeops.c b/src/afs/DARWIN/osi_vnodeops.c index bb8be243d..307ece30f 100644 --- a/src/afs/DARWIN/osi_vnodeops.c +++ b/src/afs/DARWIN/osi_vnodeops.c @@ -574,6 +574,10 @@ afs_vop_access(ap) bits |= PRSFS_INSERT; if (ap->a_action & KAUTH_VNODE_DELETE_CHILD) bits |= PRSFS_DELETE; + if (ap->a_action & KAUTH_VNODE_READ_ATTRIBUTES) + bits |= PRSFS_LOOKUP; + if (ap->a_action & KAUTH_VNODE_READ_SECURITY) /* mode bits/gid, not afs acl */ + bits |= PRSFS_LOOKUP; } else { if (ap->a_action & KAUTH_VNODE_READ_DATA) bits |= PRSFS_READ; @@ -581,9 +585,11 @@ afs_vop_access(ap) bits |= PRSFS_WRITE; if (ap->a_action & KAUTH_VNODE_EXECUTE) bits |= PRSFS_READ; /* and mode bits.... */ + if (ap->a_action & KAUTH_VNODE_READ_ATTRIBUTES) + bits |= PRSFS_READ; + if (ap->a_action & KAUTH_VNODE_READ_SECURITY) /* mode bits/gid, not afs acl */ + bits |= PRSFS_READ; } - if (ap->a_action & KAUTH_VNODE_READ_ATTRIBUTES) - bits |= PRSFS_READ; if (ap->a_action & KAUTH_VNODE_WRITE_ATTRIBUTES) bits |= PRSFS_WRITE; #if 0 /* no extended attributes */ @@ -592,8 +598,6 @@ afs_vop_access(ap) if (ap->a_action & KAUTH_VNODE_WRITE_EXTATTRIBUTES) bits |= PRSFS_WRITE; #endif - if (ap->a_action & KAUTH_VNODE_READ_SECURITY) /* mode bits/gid, not afs acl */ - bits |= PRSFS_READ; if (ap->a_action & KAUTH_VNODE_WRITE_SECURITY) bits |= PRSFS_WRITE; /* we can't check for KAUTH_VNODE_TAKE_OWNERSHIP, so we always permit it */