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

Reply via email to