From: Jeremy Allison Date: Mon, 10 May 2010 18:29:34 +0000 (-0700) Subject: Fix the processing of unlocks followed by locks. We now pass SMB2-LOCK test. X-Git-Tag: samba-3.6.0pre1~2112 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=0085a3bd2e60cc6c539259d8d83e97e852ef5e52;p=thirdparty%2Fsamba.git Fix the processing of unlocks followed by locks. We now pass SMB2-LOCK test. Jeremy. --- diff --git a/source3/smbd/smb2_lock.c b/source3/smbd/smb2_lock.c index f9717796dd1..8e662487905 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;