Fix resource leak found by coverity (CID 521).
authorJeremy Allison <jra@samba.org>
Wed, 9 Jan 2008 02:44:19 +0000 (18:44 -0800)
committerJeremy Allison <jra@samba.org>
Wed, 9 Jan 2008 02:44:19 +0000 (18:44 -0800)
Jeremy.

source/smbd/reply.c

index 27f380a627592c670e8433061db0afba1fc44d92..a796a3193b0f62c62d795ee9c61c23f741447023 100644 (file)
@@ -6355,6 +6355,7 @@ void reply_copy(struct smb_request *req)
                                        directory,
                                        dname);
                        if (!fname) {
+                               CloseDir(dir_hnd);
                                reply_nterror(req, NT_STATUS_NO_MEMORY);
                                END_PROFILE(SMBcopy);
                                return;
@@ -6365,6 +6366,7 @@ void reply_copy(struct smb_request *req)
                                continue;
                        }
                        if (!destname) {
+                               CloseDir(dir_hnd);
                                reply_nterror(req, NT_STATUS_NO_MEMORY);
                                END_PROFILE(SMBcopy);
                                return;
@@ -6372,6 +6374,7 @@ void reply_copy(struct smb_request *req)
 
                        status = check_name(conn, fname);
                        if (!NT_STATUS_IS_OK(status)) {
+                               CloseDir(dir_hnd);
                                reply_nterror(req, status);
                                END_PROFILE(SMBcopy);
                                return;
@@ -6379,6 +6382,7 @@ void reply_copy(struct smb_request *req)
 
                        status = check_name(conn, destname);
                        if (!NT_STATUS_IS_OK(status)) {
+                               CloseDir(dir_hnd);
                                reply_nterror(req, status);
                                END_PROFILE(SMBcopy);
                                return;