summaryrefslogtreecommitdiff
path: root/source3/smbd
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2012-08-16 15:08:40 +0200
committerStefan Metzmacher <metze@samba.org>2012-08-16 23:13:07 +0200
commit19ca98a162050807ad96b3a3f1f8e1982c7d2c3e (patch)
treec21f4e3c5c860dd06ef7cff78bae790b01dea844 /source3/smbd
parentf4432fea6a7a64a04a304f21207eaa1b14c929aa (diff)
downloadsamba-19ca98a162050807ad96b3a3f1f8e1982c7d2c3e.tar.gz
samba-19ca98a162050807ad96b3a3f1f8e1982c7d2c3e.tar.bz2
samba-19ca98a162050807ad96b3a3f1f8e1982c7d2c3e.zip
s3:smb2_server: verify the signature before the session_status
metze
Diffstat (limited to 'source3/smbd')
-rw-r--r--source3/smbd/smb2_server.c7
1 files changed, 4 insertions, 3 deletions
diff --git a/source3/smbd/smb2_server.c b/source3/smbd/smb2_server.c
index 5c757c02e0..027334ce13 100644
--- a/source3/smbd/smb2_server.c
+++ b/source3/smbd/smb2_server.c
@@ -1789,9 +1789,6 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req)
signing_key = x->global->channels[0].signing_key;
- if (!NT_STATUS_IS_OK(session_status)) {
- return smbd_smb2_request_error(req, session_status);
- }
req->do_signing = true;
status = smb2_signing_check_pdu(signing_key,
@@ -1801,6 +1798,10 @@ NTSTATUS smbd_smb2_request_dispatch(struct smbd_smb2_request *req)
if (!NT_STATUS_IS_OK(status)) {
return smbd_smb2_request_error(req, status);
}
+
+ if (!NT_STATUS_IS_OK(session_status)) {
+ return smbd_smb2_request_error(req, session_status);
+ }
} else if (opcode == SMB2_OP_CANCEL) {
/* Cancel requests are allowed to skip the signing */
} else if (signing_required) {