svn commit: samba r8706 - in branches/SAMBA_4_0/source/smb_server: .

abartlet at samba.org abartlet at samba.org
Fri Jul 22 05:04:45 GMT 2005


Author: abartlet
Date: 2005-07-22 05:04:45 +0000 (Fri, 22 Jul 2005)
New Revision: 8706

WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba&rev=8706

Log:
My previous patch oversimplied the previous change to session setup -
we didn't cope with the 'anonymous NTLM under SPNEGO' login.

Andrew Bartlett

Modified:
   branches/SAMBA_4_0/source/smb_server/sesssetup.c


Changeset:
Modified: branches/SAMBA_4_0/source/smb_server/sesssetup.c
===================================================================
--- branches/SAMBA_4_0/source/smb_server/sesssetup.c	2005-07-22 05:00:30 UTC (rev 8705)
+++ branches/SAMBA_4_0/source/smb_server/sesssetup.c	2005-07-22 05:04:45 UTC (rev 8706)
@@ -134,6 +134,7 @@
 	NTSTATUS status;
 	const char *remote_machine = NULL;
 
+	struct auth_context *auth_context;
 	struct smbsrv_session *smb_sess;
 	struct auth_usersupplied_info *user_info = NULL;
 	struct auth_serversupplied_info *server_info = NULL;
@@ -158,6 +159,17 @@
 			 * don't have a challenge */
 			return NT_STATUS_LOGON_FAILURE;
 		}
+
+		/* TODO: should we use just "anonymous" here? */
+		status = auth_context_create(mem_ctx, lp_auth_methods(), 
+					     &auth_context, 
+					     req->smb_conn->connection->event.ctx);
+		if (!NT_STATUS_IS_OK(status)) {
+			talloc_free(mem_ctx);
+			return status;
+		}
+	} else {
+		auth_context = req->smb_conn->negotiate.auth_context;
 	}
 
 	if (req->smb_conn->negotiate.called_name) {
@@ -187,9 +199,8 @@
 	user_info->password.response.nt = sess->nt1.in.password2;
 	user_info->password.response.nt.data = talloc_steal(user_info, sess->nt1.in.password2.data);
 
-	status = auth_check_password(req->smb_conn->negotiate.auth_context, 
-				     req, user_info, &server_info);
-	
+	status = auth_check_password(auth_context, 
+				     mem_ctx, user_info, &server_info);
 	if (!NT_STATUS_IS_OK(status)) {
 		talloc_free(mem_ctx);
 		return auth_nt_status_squash(status);



More information about the samba-cvs mailing list