s3: Delete streams on directories
authorVolker Lendecke <vl@samba.org>
Tue, 31 Jan 2012 21:26:23 +0000 (22:26 +0100)
committerKarolin Seeger <kseeger@samba.org>
Fri, 22 Jun 2012 19:37:09 +0000 (21:37 +0200)
(cherry picked from commit 9ba7748b5f1c08dbefbb8d9c9646f631c2a355e0)

source3/smbd/close.c

index 25c8b4640e9dbe69ef6a69ca79c02ad6244e5e86..a431a5de5615bfe730d30a97b25cd9698811d134 100644 (file)
@@ -1042,6 +1042,17 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp,
 
                TALLOC_FREE(lck);
 
+               if ((fsp->conn->fs_capabilities & FILE_NAMED_STREAMS)
+                   && !is_ntfs_stream_smb_fname(fsp->fsp_name)) {
+
+                       status = delete_all_streams(fsp->conn, fsp->fsp_name->base_name);
+                       if (!NT_STATUS_IS_OK(status)) {
+                               DEBUG(5, ("delete_all_streams failed: %s\n",
+                                         nt_errstr(status)));
+                               goto out;
+                       }
+               }
+
                status = rmdir_internals(talloc_tos(), fsp);
 
                DEBUG(5,("close_directory: %s. Delete on close was set - "