From b5a72f4f35a3aecba6294a3f8c07fb2ea252284b Mon Sep 17 00:00:00 2001 From: Stefan Metzmacher Date: Wed, 8 Aug 2012 06:57:45 +0200 Subject: [PATCH] s3:smb2_server: check the session before we could response with an error. metze --- source3/smbd/smb2_server.c | 30 +++++++++++++++--------------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c index 61c1bfffae3..4849211e221 100644 --- a/source3/smbd/smb2_server.c +++ b/source3/smbd/smb2_server.c @@ -1742,21 +1742,6 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req) } } - call = smbd_smb2_call(opcode); - if (call == NULL) { - return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER); - } - - allowed_flags = SMB2_HDR_FLAG_CHAINED | - SMB2_HDR_FLAG_SIGNED | - SMB2_HDR_FLAG_DFS; - if (opcode == SMB2_OP_CANCEL) { - allowed_flags |= SMB2_HDR_FLAG_ASYNC; - } - if ((flags & ~allowed_flags) != 0) { - return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER); - } - /* * Check if the client provided a valid session id, * if so smbd_smb2_request_check_session() calls @@ -1777,6 +1762,21 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req) } } + call = smbd_smb2_call(opcode); + if (call == NULL) { + return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER); + } + + allowed_flags = SMB2_HDR_FLAG_CHAINED | + SMB2_HDR_FLAG_SIGNED | + SMB2_HDR_FLAG_DFS; + if (opcode == SMB2_OP_CANCEL) { + allowed_flags |= SMB2_HDR_FLAG_ASYNC; + } + if ((flags & ~allowed_flags) != 0) { + return smbd_smb2_request_error(req, NT_STATUS_INVALID_PARAMETER); + } + req->do_signing = false; if (flags & SMB2_HDR_FLAG_SIGNED) { DATA_BLOB signing_key; -- 2.11.4.GIT