[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Tue Jan 12 17:56:40 MST 2010


The branch, master has been updated
       via  105f876... Fix bug #7033 - SMBrmdir call always returns true, even on failure to delete a directory.
      from  ce8dcbe... Fix bug #7033 - SMBrmdir call always returns true, even on failure to delete a directory.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 105f876eb447e6839b9b19c2d264c4a168cf0cc9
Author: Jeremy Allison <jra at samba.org>
Date:   Tue Jan 12 16:55:31 2010 -0800

    Fix bug #7033 - SMBrmdir call always returns true, even on failure to delete a directory.
    
    Argh. Missed the second (and essential) part of the fix for the above :-(.
    
    Jeremy

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/close.c |    8 ++++++--
 1 files changed, 6 insertions(+), 2 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/close.c b/source3/smbd/close.c
index e81a2fd..ca1ac47 100644
--- a/source3/smbd/close.c
+++ b/source3/smbd/close.c
@@ -926,6 +926,7 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp,
 	struct share_mode_lock *lck = NULL;
 	bool delete_dir = False;
 	NTSTATUS status = NT_STATUS_OK;
+	NTSTATUS status1 = NT_STATUS_OK;
 
 	/*
 	 * NT can set delete_on_close of the last open
@@ -1025,9 +1026,9 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp,
 			fsp, NT_STATUS_OK);
 	}
 
-	status = fd_close(fsp);
+	status1 = fd_close(fsp);
 
-	if (!NT_STATUS_IS_OK(status)) {
+	if (!NT_STATUS_IS_OK(status1)) {
 		DEBUG(0, ("Could not close dir! fname=%s, fd=%d, err=%d=%s\n",
 			  fsp_str_dbg(fsp), fsp->fh->fd, errno,
 			  strerror(errno)));
@@ -1045,6 +1046,9 @@ static NTSTATUS close_directory(struct smb_request *req, files_struct *fsp,
 
  out:
 	TALLOC_FREE(lck);
+	if (NT_STATUS_IS_OK(status) && !NT_STATUS_IS_OK(status1)) {
+		status = status1;
+	}
 	return status;
 }
 


-- 
Samba Shared Repository


More information about the samba-cvs mailing list