[SCM] Samba Shared Repository - branch master updated

Jeremy Allison jra at samba.org
Mon Apr 26 13:30:55 MDT 2010


The branch, master has been updated
       via  1055b3c... When walking the SMB2 requests queue, ensure the request is still "in flight" before examining the details.
      from  6beba78... Fix crash when rescheduling oplock open.

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 1055b3c229f9ab8b4d43a73346090bb72b88d607
Author: Jeremy Allison <jra at samba.org>
Date:   Mon Apr 26 12:29:03 2010 -0700

    When walking the SMB2 requests queue, ensure the request is still "in flight"
    before examining the details.
    
    SMB2 requests stay on the queue until their out.vector has been
    send, only then are they talloc_free'd.
    
    Thanks for Ira Cooper <ira at wakeful.net> for giving me the
    backtrace showing this.
    
    Jeremy.

-----------------------------------------------------------------------

Summary of changes:
 source3/smbd/smb2_create.c |   11 ++++++++++-
 1 files changed, 10 insertions(+), 1 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/smb2_create.c b/source3/smbd/smb2_create.c
index 3302730..377db32 100644
--- a/source3/smbd/smb2_create.c
+++ b/source3/smbd/smb2_create.c
@@ -877,7 +877,16 @@ static struct smbd_smb2_request *find_open_smb2req(uint64_t mid)
 	struct smbd_smb2_request *smb2req;
 
 	for (smb2req = sconn->smb2.requests; smb2req; smb2req = smb2req->next) {
-		uint64_t message_id = get_mid_from_smb2req(smb2req);
+		uint64_t message_id;
+		if (smb2req->subreq == NULL) {
+			/* This message has been processed. */
+			continue;
+		}
+		if (!tevent_req_is_in_progress(smb2req->subreq)) {
+			/* This message has been processed. */
+			continue;
+		}
+		message_id = get_mid_from_smb2req(smb2req);
 		if (message_id == mid) {
 			return smb2req;
 		}


-- 
Samba Shared Repository


More information about the samba-cvs mailing list