The branch, master has been updated
       via  0085a3b... Fix the processing of unlocks followed by locks. We now 
pass SMB2-LOCK test.
      from  a9a3c83... Fix more of the SMB2-LOCK tests. Correctly unlock locks 
on error.

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


- Log -----------------------------------------------------------------
commit 0085a3bd2e60cc6c539259d8d83e97e852ef5e52
Author: Jeremy Allison <[email protected]>
Date:   Mon May 10 11:29:34 2010 -0700

    Fix the processing of unlocks followed by locks. We now pass SMB2-LOCK test.
    
    Jeremy.

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

Summary of changes:
 source3/smbd/smb2_lock.c |   14 +++++---------
 1 files changed, 5 insertions(+), 9 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/smbd/smb2_lock.c b/source3/smbd/smb2_lock.c
index f971779..8e66248 100644
--- a/source3/smbd/smb2_lock.c
+++ b/source3/smbd/smb2_lock.c
@@ -298,12 +298,11 @@ static struct tevent_req *smbd_smb2_lock_send(TALLOC_CTX 
*mem_ctx,
                switch (in_locks[i].flags) {
                case SMB2_LOCK_FLAG_SHARED:
                case SMB2_LOCK_FLAG_EXCLUSIVE:
-                       if (i > 0) {
-                               tevent_req_nterror(req,
-                                                  NT_STATUS_INVALID_PARAMETER);
-                               return tevent_req_post(req, ev);
-                       }
                        if (isunlock) {
+                               invalid = true;
+                               break;
+                       }
+                       if (i > 0) {
                                tevent_req_nterror(req,
                                                   NT_STATUS_INVALID_PARAMETER);
                                return tevent_req_post(req, ev);
@@ -313,9 +312,7 @@ static struct tevent_req *smbd_smb2_lock_send(TALLOC_CTX 
*mem_ctx,
                case SMB2_LOCK_FLAG_SHARED|SMB2_LOCK_FLAG_FAIL_IMMEDIATELY:
                case SMB2_LOCK_FLAG_EXCLUSIVE|SMB2_LOCK_FLAG_FAIL_IMMEDIATELY:
                        if (isunlock) {
-                               tevent_req_nterror(req,
-                                                  NT_STATUS_INVALID_PARAMETER);
-                               return tevent_req_post(req, ev);
+                               invalid = true;
                        }
                        break;
 
@@ -369,7 +366,6 @@ static struct tevent_req *smbd_smb2_lock_send(TALLOC_CTX 
*mem_ctx,
                        (unsigned long long)locks[i].count,
                        (unsigned long long)locks[i].smblctx,
                        (int)locks[i].brltype ));
-
        }
 
        state->locks = locks;


-- 
Samba Shared Repository

Reply via email to