pvfs_open: pass down an access mask to pvfs_can_update_file_size()
authorStefan Metzmacher <metze@samba.org>
Tue, 26 Feb 2008 09:26:33 +0000 (10:26 +0100)
committerStefan Metzmacher <metze@samba.org>
Tue, 26 Feb 2008 12:53:15 +0000 (13:53 +0100)
You just need SEC_FILE_WRITE_ATTRIBUTE to change
the filesize...

metze

source/ntvfs/posix/pvfs_open.c

index 0e4250d74427a679beb5f98659e5b83781b0dcb4..a01352f60cff54cf5064e5d9d850d85e799b5edf 100644 (file)
@@ -1648,9 +1648,19 @@ NTSTATUS pvfs_can_update_file_size(struct pvfs_state *pvfs,
                return NT_STATUS_INTERNAL_DB_CORRUPTION;
        }
 
-       /* TODO: this may needs some more flags */
-       share_access    = NTCREATEX_SHARE_ACCESS_WRITE;
-       access_mask     = 0;
+       share_access    = NTCREATEX_SHARE_ACCESS_READ |
+                         NTCREATEX_SHARE_ACCESS_WRITE |
+                         NTCREATEX_SHARE_ACCESS_DELETE;
+       /*
+        * I would have thought that we would need to pass
+        * SEC_FILE_WRITE_DATA | SEC_FILE_APPEND_DATA here too
+        *
+        * But you only need SEC_FILE_WRITE_ATTRIBUTE permissions
+        * to set the filesize.
+        *
+        * --metze
+        */
+       access_mask     = SEC_FILE_WRITE_ATTRIBUTE;
        delete_on_close = false;
        break_to_none   = true;