From 56d8d77edc0e16297feb67411f0823a930a1ae93 Mon Sep 17 00:00:00 2001 From: Jeremy Allison Date: Wed, 18 Feb 2015 21:27:37 -0800 Subject: [PATCH] s3: smbd: signing. Ensure we respond correctly to an SMB2 negprot with SMB2_NEGOTIATE_SIGNING_REQUIRED. Bug 11103: - Samba does not set the required flags in the SMB2/SMB3 Negotiate Protocol Response when signing required by client https://bugzilla.samba.org/show_bug.cgi?id=11103 Signed-off-by: Jeremy Allison Reviewed-by: Steve French (cherry picked from commit 1cea6e5b6f8c0e28d5ba2d296c831c4878fca304) --- source3/smbd/smb2_negprot.c | 3 ++- source3/smbd/smb2_sesssetup.c | 4 +++- 2 files changed, 5 insertions(+), 2 deletions(-) diff --git a/source3/smbd/smb2_negprot.c b/source3/smbd/smb2_negprot.c index 963a557..ba52580 100644 --- a/source3/smbd/smb2_negprot.c +++ b/source3/smbd/smb2_negprot.c @@ -253,7 +253,8 @@ NTSTATUS smbd_smb2_request_process_negprot(struct smbd_smb2_request *req) } security_mode = SMB2_NEGOTIATE_SIGNING_ENABLED; - if (lp_server_signing() == SMB_SIGNING_REQUIRED) { + if (lp_server_signing() == SMB_SIGNING_REQUIRED || + (in_security_mode & SMB2_NEGOTIATE_SIGNING_REQUIRED)) { security_mode |= SMB2_NEGOTIATE_SIGNING_REQUIRED; } diff --git a/source3/smbd/smb2_sesssetup.c b/source3/smbd/smb2_sesssetup.c index a82d696..78ae755 100644 --- a/source3/smbd/smb2_sesssetup.c +++ b/source3/smbd/smb2_sesssetup.c @@ -187,7 +187,9 @@ static NTSTATUS smbd_smb2_auth_generic_return(struct smbXsrv_session *session, struct smbXsrv_connection *conn = session->connection; if ((in_security_mode & SMB2_NEGOTIATE_SIGNING_REQUIRED) || - lp_server_signing() == SMB_SIGNING_REQUIRED) { + lp_server_signing() == SMB_SIGNING_REQUIRED || + (conn->smb2.server.security_mode & + SMB2_NEGOTIATE_SIGNING_REQUIRED)) { x->global->signing_required = true; } -- 1.9.1