]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-windows-unix-mode-bit-enforcement-20070102
authorJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 3 Jan 2007 00:45:47 +0000 (00:45 +0000)
committerJeffrey Altman <jaltman@secure-endpoints.com>
Wed, 3 Jan 2007 00:45:47 +0000 (00:45 +0000)
When the Unix mode bits do not include the write bit (0200), then the
file is reported to Windows as read-only.  This also prevents the
acquisition of write-locks.  It should also prevent deletion but the
code in cm_HaveAccessRights() did not remove the PRSFS_DELETE privilege
from the reported rights.

(cherry picked from commit 56d5e6970d27a5c99c04b105481bcf1d1bc3db1e)

src/WINNT/afsd/cm_access.c

index 6676e40459dcd71307efef8f3ddd5d2cf367f737..2191e4ef938009b023592a30147b51c9cfd21bc7 100644 (file)
@@ -94,7 +94,7 @@ int cm_HaveAccessRights(struct cm_scache *scp, struct cm_user *up, long rights,
     if (!(scp->unixModeBits & 0400))
         *outRightsp &= ~PRSFS_READ;
     if (!(scp->unixModeBits & 0200))
-        *outRightsp &= ~PRSFS_WRITE;
+        *outRightsp &= ~(PRSFS_WRITE|PRSFS_DELETE);
 
     code = 1;
     /* fall through */