diff options
author | Jeremy Allison <jra@samba.org> | 2010-01-12 16:04:44 -0800 |
---|---|---|
committer | Jeremy Allison <jra@samba.org> | 2010-01-12 16:04:44 -0800 |
commit | 47c1d9b39f292772e8d8f7a737ddff6c8bdfdeae (patch) | |
tree | a032c194ae17b0634df31def0b125fc4db894f2e /source3/smbd/close.c | |
parent | 2f30aea3324f32f9b8555e961256fc1280da2871 (diff) | |
download | samba-47c1d9b39f292772e8d8f7a737ddff6c8bdfdeae.tar.gz samba-47c1d9b39f292772e8d8f7a737ddff6c8bdfdeae.tar.bz2 samba-47c1d9b39f292772e8d8f7a737ddff6c8bdfdeae.zip |
Fix bug #6876 - Delete of an object whose parent folder does not have delete rights fails even if the delete right is set on the object.
Final fix for the vfs_acl_xattr and vfs_acl_tdb code.
Ensure we can delete a file even if the underlying POSIX
permissions don't allow it, if the Windows permissions do.
Jeremy.
Diffstat (limited to 'source3/smbd/close.c')
-rw-r--r-- | source3/smbd/close.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/source3/smbd/close.c b/source3/smbd/close.c index 05c3c709a1..e81a2fdff6 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -336,6 +336,7 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp, become_user(conn, fsp->vuid); became_user = True; } + fsp->delete_on_close = true; set_delete_on_close_lck(lck, True, ¤t_user.ut); if (became_user) { unbecome_user(); @@ -481,6 +482,7 @@ static NTSTATUS close_remove_share_mode(files_struct *fsp, * the delete on close flag. JRA. */ + fsp->delete_on_close = false; set_delete_on_close_lck(lck, False, NULL); done: @@ -958,6 +960,7 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp, } send_stat_cache_delete_message(fsp->fsp_name->base_name); set_delete_on_close_lck(lck, True, ¤t_user.ut); + fsp->delete_on_close = true; if (became_user) { unbecome_user(); } |