diff options
author | Stefan Metzmacher <metze@samba.org> | 2016-05-18 09:56:02 +0200 |
---|---|---|
committer | Karolin Seeger <kseeger@samba.org> | 2016-05-30 11:09:19 +0200 |
commit | b6c9438158cb149f749d0eb258ed22886edd6b94 (patch) | |
tree | 3afa02cc776d9ad0d06f9521f776765f53964562 | |
parent | 93155fae52ff4e5b36826a6369d1a7c6152f873a (diff) | |
download | samba-b6c9438158cb149f749d0eb258ed22886edd6b94.tar.gz |
s3:smbd: fix anonymous authentication if signing is mandatory
BUG: https://bugzilla.samba.org/show_bug.cgi?id=11910
Signed-off-by: Stefan Metzmacher <metze@samba.org>
Reviewed-by: Andreas Schneider <asn@samba.org>
(cherry picked from commit 2b67554e6ccca6dd4616dea672890e0a56bed8bd)
-rw-r--r-- | source3/smbd/sesssetup.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/source3/smbd/sesssetup.c b/source3/smbd/sesssetup.c index 77b80776cbe..5d92af125b0 100644 --- a/source3/smbd/sesssetup.c +++ b/source3/smbd/sesssetup.c @@ -135,6 +135,7 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req) struct smbXsrv_connection *xconn = req->xconn; struct smbd_server_connection *sconn = req->sconn; uint16_t action = 0; + bool is_authenticated = false; NTTIME now = timeval_to_nttime(&req->request_time); struct smbXsrv_session *session = NULL; uint16_t smb_bufsize = SVAL(req->vwv+2, 0); @@ -328,12 +329,13 @@ static void reply_sesssetup_and_X_spnego(struct smb_request *req) sconn->num_users++; if (security_session_user_level(session_info, NULL) >= SECURITY_USER) { + is_authenticated = true; session->compat->homes_snum = register_homes_share(session_info->unix_info->unix_name); } if (srv_is_signing_negotiated(xconn) && - action == 0 && + is_authenticated && session->global->signing_key.length > 0) { /* @@ -592,6 +594,7 @@ void reply_sesssetup_and_X(struct smb_request *req) struct auth_session_info *session_info = NULL; uint16 smb_flag2 = req->flags2; uint16_t action = 0; + bool is_authenticated = false; NTTIME now = timeval_to_nttime(&req->request_time); struct smbXsrv_session *session = NULL; NTSTATUS nt_status; @@ -1029,12 +1032,13 @@ void reply_sesssetup_and_X(struct smb_request *req) sconn->num_users++; if (security_session_user_level(session_info, NULL) >= SECURITY_USER) { + is_authenticated = true; session->compat->homes_snum = register_homes_share(session_info->unix_info->unix_name); } if (srv_is_signing_negotiated(xconn) && - action == 0 && + is_authenticated && session->global->signing_key.length > 0) { /* |