diff options
author | Jeremy Allison <jra@samba.org> | 2006-02-28 06:41:07 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 11:10:52 -0500 |
commit | 99b74908cd064d7e1a3864db9c6b7dba018577c3 (patch) | |
tree | ab91b5859539c82b36166953f09ed03c04e8f66a /source3/smbd | |
parent | ddf14cc286944e11cebfcf550cf57a7a9436a5a0 (diff) | |
download | samba-99b74908cd064d7e1a3864db9c6b7dba018577c3.tar.gz samba-99b74908cd064d7e1a3864db9c6b7dba018577c3.tar.xz samba-99b74908cd064d7e1a3864db9c6b7dba018577c3.zip |
r13748: Don't reference memory after we just freed it (Doh!).
Thanks to tridge's changes to the directory delete on close tests
for catching this.
Jeremy.
(This used to be commit 01ef957d4846191071f95393e6e76e48d4c6aa24)
Diffstat (limited to 'source3/smbd')
-rw-r--r-- | source3/smbd/close.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/source3/smbd/close.c b/source3/smbd/close.c index 09276cd200d..bc1182032d7 100644 --- a/source3/smbd/close.c +++ b/source3/smbd/close.c @@ -363,8 +363,6 @@ static int close_directory(files_struct *fsp, enum file_close_type close_type) delete_dir = (lck->delete_on_close | lck->initial_delete_on_close); - TALLOC_FREE(lck); - if ((close_type == NORMAL_CLOSE || close_type == SHUTDOWN_CLOSE) && delete_dir && lck->delete_token) { @@ -382,6 +380,8 @@ static int close_directory(files_struct *fsp, enum file_close_type close_type) lck->delete_token->groups, NULL); + TALLOC_FREE(lck); + ok = rmdir_internals(fsp->conn, fsp->fsp_name); DEBUG(5,("close_directory: %s. Delete on close was set - deleting directory %s.\n", @@ -402,6 +402,7 @@ static int close_directory(files_struct *fsp, enum file_close_type close_type) } process_pending_change_notify_queue((time_t)0); } else { + TALLOC_FREE(lck); remove_pending_change_notify_requests_by_fid(fsp, NT_STATUS_CANCELLED); } |