s3: Delete streams on directories
authorVolker Lendecke <vl@samba.org>
Tue, 31 Jan 2012 21:26:23 +0000 (22:26 +0100)
committerVolker Lendecke <vlendec@samba.org>
Tue, 31 Jan 2012 22:30:09 +0000 (23:30 +0100)
source3/smbd/close.c

index 131f4bf5d1fe93ed62b8b17aaec341055b1070ab..42e88d82ea3691f7a7b3b4ff53aa8dc0ba681450 100644 (file)
@@ -1088,6 +1088,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 - "