Author: jmcd
Date: 2007-01-12 21:56:25 +0000 (Fri, 12 Jan 2007)
New Revision: 20717

WebSVN: 
http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=20717

Log:
Merge sharemode patch from Mathias Dietz <[EMAIL PROTECTED]>.

The patch fixes the behaviour of GPFS sharemodes when
the access mask is no_access.


Modified:
   branches/SAMBA_3_0/source/modules/gpfs.c
   branches/SAMBA_3_0_24/source/modules/gpfs.c


Changeset:
Modified: branches/SAMBA_3_0/source/modules/gpfs.c
===================================================================
--- branches/SAMBA_3_0/source/modules/gpfs.c    2007-01-12 17:58:38 UTC (rev 
20716)
+++ branches/SAMBA_3_0/source/modules/gpfs.c    2007-01-12 21:56:25 UTC (rev 
20717)
@@ -52,11 +52,16 @@
                                 DELETE_ACCESS)) ? GPFS_SHARE_WRITE : 0;
        allow |= (access_mask & (FILE_READ_DATA|FILE_EXECUTE)) ?
                GPFS_SHARE_READ : 0;
-       deny |= (share_access & (FILE_SHARE_WRITE|FILE_SHARE_DELETE)) ?
-               0 : GPFS_DENY_WRITE;
-       deny |= (share_access & (FILE_SHARE_READ)) ?
-               0 : GPFS_DENY_READ;
 
+       if (allow == GPFS_SHARE_NONE) {
+               DEBUG(10, ("special case am=no_access:%x\n",access_mask));
+       }
+       else {  
+               deny |= (share_access & (FILE_SHARE_WRITE|FILE_SHARE_DELETE)) ?
+                       0 : GPFS_DENY_WRITE;
+               deny |= (share_access & (FILE_SHARE_READ)) ?
+                       0 : GPFS_DENY_READ;
+       }
        DEBUG(10, ("am=%x, allow=%d, sa=%x, deny=%d\n",
                   access_mask, allow, share_access, deny));
 

Modified: branches/SAMBA_3_0_24/source/modules/gpfs.c
===================================================================
--- branches/SAMBA_3_0_24/source/modules/gpfs.c 2007-01-12 17:58:38 UTC (rev 
20716)
+++ branches/SAMBA_3_0_24/source/modules/gpfs.c 2007-01-12 21:56:25 UTC (rev 
20717)
@@ -52,11 +52,16 @@
                                 DELETE_ACCESS)) ? GPFS_SHARE_WRITE : 0;
        allow |= (access_mask & (FILE_READ_DATA|FILE_EXECUTE)) ?
                GPFS_SHARE_READ : 0;
-       deny |= (share_access & (FILE_SHARE_WRITE|FILE_SHARE_DELETE)) ?
-               0 : GPFS_DENY_WRITE;
-       deny |= (share_access & (FILE_SHARE_READ)) ?
-               0 : GPFS_DENY_READ;
 
+       if (allow == GPFS_SHARE_NONE) {
+               DEBUG(10, ("special case am=no_access:%x\n",access_mask));
+       }
+       else {  
+               deny |= (share_access & (FILE_SHARE_WRITE|FILE_SHARE_DELETE)) ?
+                       0 : GPFS_DENY_WRITE;
+               deny |= (share_access & (FILE_SHARE_READ)) ?
+                       0 : GPFS_DENY_READ;
+       }
        DEBUG(10, ("am=%x, allow=%d, sa=%x, deny=%d\n",
                   access_mask, allow, share_access, deny));
 

Reply via email to