From ce8dcbe91ba0252140a0e4f84ea4bc746259ddde Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Tue, 12 Jan 2010 16:50:40 -0800 Subject: Fix bug #7033 - SMBrmdir call always returns true, even on failure to delete a directory. There is a codepath missing to propagate back error returns from the rmdir POSIX call inside close_directory when delete on close is set. This means doing an rmdir on a Windows command line will always report success, even when the directory was not deleted. This fix adds that codepath back into Samba. Jeremy. --- source3/smbd/reply.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) (limited to 'source3/smbd') diff --git a/source3/smbd/reply.c b/source3/smbd/reply.c index b2d98bfbc0..b6316aac46 100644 --- a/source3/smbd/reply.c +++ b/source3/smbd/reply.c @@ -5368,8 +5368,12 @@ void reply_rmdir(struct smb_request *req) goto out; } - close_file(req, fsp, NORMAL_CLOSE); - reply_outbuf(req, 0, 0); + status = close_file(req, fsp, NORMAL_CLOSE); + if (!NT_STATUS_IS_OK(status)) { + reply_nterror(req, status); + } else { + reply_outbuf(req, 0, 0); + } dptr_closepath(sconn, smb_dname->base_name, req->smbpid); -- cgit