The branch, v4-0-test has been updated via 04388ad Fix bug #9196 - defer_open is triggered multiple times on the same request. from 9b4bd43 VERSION: Bump version number up to 4.0.1.
http://gitweb.samba.org/?p=samba.git;a=shortlog;h=v4-0-test - Log ----------------------------------------------------------------- commit 04388adfe82bd0fa52c30074c501b2db87ee3c65 Author: Jeremy Allison <j...@samba.org> Date: Fri Dec 14 08:39:26 2012 -0800 Fix bug #9196 - defer_open is triggered multiple times on the same request. get_deferred_open_message_state_smb2() is buggy in that it is checking the wrong things to determine if an open is in the deferred state. It checks if (smb2req->async_te == NULL) which is incorrect, as we're not always async in a deferred open - remove this. It should check instead state->open_was_deferred as this is explicity set to 'true' when an open is going deferred, so add this check. Signed-off-by: Jeremy Allison <j...@samba.org> Reviewed-by: Stefan Metzmacher <me...@samba.org> Autobuild-User(master): Stefan Metzmacher <me...@samba.org> Autobuild-Date(master): Tue Dec 18 14:19:13 CET 2012 on sn-devel-104 (cherry picked from commit 2148d86c7a2facd6e128b753aef98722843af3e1) Autobuild-User(v4-0-test): Karolin Seeger <ksee...@samba.org> Autobuild-Date(v4-0-test): Wed Jan 2 12:18:40 CET 2013 on sn-devel-104 ----------------------------------------------------------------------- Summary of changes: source3/smbd/smb2_create.c | 6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) Changeset truncated at 500 lines: diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c index 7db6b00..ae0cdb3 100644 --- a/source3/smbd/smb2_create.c +++ b/source3/smbd/smb2_create.c @@ -1132,9 +1132,6 @@ bool get_deferred_open_message_state_smb2(struct smbd_smb2_request *smb2req, if (!smb2req) { return false; } - if (smb2req->async_te == NULL) { - return false; - } req = smb2req->subreq; if (!req) { return false; @@ -1143,6 +1140,9 @@ bool get_deferred_open_message_state_smb2(struct smbd_smb2_request *smb2req, if (!state) { return false; } + if (!state->open_was_deferred) { + return false; + } if (p_request_time) { *p_request_time = state->request_time; } -- Samba Shared Repository