[SCM] Samba Shared Repository - branch master updated

Simo Sorce idra at samba.org
Sat May 29 15:12:38 MDT 2010


The branch, master has been updated
       via  33c633d... s3:auth make it easier to trace auth modules
       via  bd38c0d... s3:auth fix info3 duplication function
       via  b99dd10... s3:smbd Use the right num_sids
      from  d85d85b... s3:passdb Fix memory leak

http://gitweb.samba.org/?p=samba.git;a=shortlog;h=master


- Log -----------------------------------------------------------------
commit 33c633df0bb49551a833d1bf86db0825b8007546
Author: Simo Sorce <ssorce at redhat.com>
Date:   Sat May 29 16:49:37 2010 -0400

    s3:auth make it easier to trace auth modules

commit bd38c0d47d6a22a68fea5d9d66a73a9e2521b239
Author: Simo Sorce <ssorce at redhat.com>
Date:   Fri May 28 13:35:56 2010 -0400

    s3:auth fix info3 duplication function

commit b99dd10b39a4483a1c4b34f5438630ed99374c10
Author: Simo Sorce <ssorce at redhat.com>
Date:   Fri May 28 08:33:18 2010 -0400

    s3:smbd Use the right num_sids
    
    We use s_i->ptok->num_sids everywhere else in this call and
    then suddenly we reference s_i->num_sids

-----------------------------------------------------------------------

Summary of changes:
 source3/auth/auth_builtin.c   |    5 +++++
 source3/auth/auth_domain.c    |    4 ++++
 source3/auth/auth_netlogond.c |    2 ++
 source3/auth/auth_sam.c       |    2 ++
 source3/auth/auth_server.c    |    2 ++
 source3/auth/auth_unix.c      |    2 ++
 source3/auth/auth_wbc.c       |    2 ++
 source3/auth/auth_winbind.c   |    2 ++
 source3/auth/server_info.c    |   11 ++++++++---
 source3/smbd/trans2.c         |    2 +-
 10 files changed, 30 insertions(+), 4 deletions(-)


Changeset truncated at 500 lines:

diff --git a/source3/auth/auth_builtin.c b/source3/auth/auth_builtin.c
index e2ad848..9e8fec9 100644
--- a/source3/auth/auth_builtin.c
+++ b/source3/auth/auth_builtin.c
@@ -40,6 +40,8 @@ static NTSTATUS check_guest_security(const struct auth_context *auth_context,
 	/* mark this as 'not for me' */
 	NTSTATUS nt_status = NT_STATUS_NOT_IMPLEMENTED;
 
+	DEBUG(10, ("Check auth for: [%s]\n", user_info->internal_username));
+
 	if (!(user_info->internal_username 
 	      && *user_info->internal_username)) {
 		nt_status = make_server_info_guest(NULL, server_info);
@@ -88,6 +90,9 @@ static NTSTATUS check_name_to_ntstatus_security(const struct auth_context *auth_
 	NTSTATUS nt_status;
 	fstring user;
 	long error_num;
+
+	DEBUG(10, ("Check auth for: [%s]\n", user_info->internal_username));
+
 	fstrcpy(user, user_info->smb_name);
 
 	if (strnequal("NT_STATUS", user, strlen("NT_STATUS"))) {
diff --git a/source3/auth/auth_domain.c b/source3/auth/auth_domain.c
index ef58250..a42f3a1 100644
--- a/source3/auth/auth_domain.c
+++ b/source3/auth/auth_domain.c
@@ -393,6 +393,8 @@ static NTSTATUS check_ntdomain_security(const struct auth_context *auth_context,
 		return NT_STATUS_INVALID_PARAMETER;
 	}
 
+	DEBUG(10, ("Check auth for: [%s]\n", user_info->internal_username));
+
 	/* 
 	 * Check that the requested domain is not our own machine name.
 	 * If it is, we should never check the PDC here, we use our own local
@@ -461,6 +463,8 @@ static NTSTATUS check_trustdomain_security(const struct auth_context *auth_conte
 		return NT_STATUS_INVALID_PARAMETER;
 	}
 
+	DEBUG(10, ("Check auth for: [%s]\n", user_info->internal_username));
+
 	/* 
 	 * Check that the requested domain is not our own machine name or domain name.
 	 */
diff --git a/source3/auth/auth_netlogond.c b/source3/auth/auth_netlogond.c
index e5f2a1b..1442e2f 100644
--- a/source3/auth/auth_netlogond.c
+++ b/source3/auth/auth_netlogond.c
@@ -170,6 +170,8 @@ static NTSTATUS check_netlogond_security(const struct auth_context *auth_context
 	struct named_mutex *mutex = NULL;
 	const char *ncalrpcsock;
 
+	DEBUG(10, ("Check auth for: [%s]\n", user_info->internal_username));
+
 	ncalrpcsock = lp_parm_const_string(
 		GLOBAL_SECTION_SNUM, "auth_netlogond", "socket", NULL);
 
diff --git a/source3/auth/auth_sam.c b/source3/auth/auth_sam.c
index 4220b7a..324295f 100644
--- a/source3/auth/auth_sam.c
+++ b/source3/auth/auth_sam.c
@@ -72,6 +72,8 @@ static NTSTATUS auth_samstrict_auth(const struct auth_context *auth_context,
 		return NT_STATUS_LOGON_FAILURE;
 	}
 
+	DEBUG(10, ("Check auth for: [%s]\n", user_info->internal_username));
+
 	is_local_name = is_myname(user_info->domain);
 	is_my_domain  = strequal(user_info->domain, lp_workgroup());
 
diff --git a/source3/auth/auth_server.c b/source3/auth/auth_server.c
index 4bcb796..35b7fe6 100644
--- a/source3/auth/auth_server.c
+++ b/source3/auth/auth_server.c
@@ -281,6 +281,8 @@ static NTSTATUS check_smbserver_security(const struct auth_context *auth_context
 	NTSTATUS nt_status = NT_STATUS_NOT_IMPLEMENTED;
 	bool locally_made_cli = False;
 
+	DEBUG(10, ("Check auth for: [%s]\n", user_info->internal_username));
+
 	cli = state->cli;
 
 	if (cli) {
diff --git a/source3/auth/auth_unix.c b/source3/auth/auth_unix.c
index 86c5a58..2bc2b06 100644
--- a/source3/auth/auth_unix.c
+++ b/source3/auth/auth_unix.c
@@ -91,6 +91,8 @@ static NTSTATUS check_unix_security(const struct auth_context *auth_context,
 	NTSTATUS nt_status;
 	struct passwd *pass = NULL;
 
+	DEBUG(10, ("Check auth for: [%s]\n", user_info->internal_username));
+
 	become_root();
 	pass = Get_Pwnam_alloc(talloc_tos(), user_info->internal_username);
 
diff --git a/source3/auth/auth_wbc.c b/source3/auth/auth_wbc.c
index b91a573..11cc7ea 100644
--- a/source3/auth/auth_wbc.c
+++ b/source3/auth/auth_wbc.c
@@ -61,6 +61,8 @@ static NTSTATUS check_wbc_security(const struct auth_context *auth_context,
 	}
 	/* Send off request */
 
+	DEBUG(10, ("Check auth for: [%s]", user_info->internal_username));
+
 	params.account_name	= user_info->smb_name;
 	params.domain_name	= user_info->domain;
 	params.workstation_name	= user_info->wksta_name;
diff --git a/source3/auth/auth_winbind.c b/source3/auth/auth_winbind.c
index 86a6194..68509e4 100644
--- a/source3/auth/auth_winbind.c
+++ b/source3/auth/auth_winbind.c
@@ -43,6 +43,8 @@ static NTSTATUS check_winbind_security(const struct auth_context *auth_context,
 		return NT_STATUS_INVALID_PARAMETER;
 	}
 
+	DEBUG(10, ("Check auth for: [%s]", user_info->internal_username));
+
 	if (!auth_context) {
 		DEBUG(3,("Password for user %s cannot be checked because we have no auth_info to get the challenge from.\n", 
 			 user_info->internal_username));
diff --git a/source3/auth/server_info.c b/source3/auth/server_info.c
index 2545e7d..f72cdba 100644
--- a/source3/auth/server_info.c
+++ b/source3/auth/server_info.c
@@ -392,6 +392,7 @@ struct netr_SamInfo3 *copy_netr_SamInfo3(TALLOC_CTX *mem_ctx,
 					 struct netr_SamInfo3 *orig)
 {
 	struct netr_SamInfo3 *info3;
+	unsigned int i;
 
 	info3 = talloc_zero(mem_ctx, struct netr_SamInfo3);
 	if (!info3) return NULL;
@@ -455,10 +456,14 @@ struct netr_SamInfo3 *copy_netr_SamInfo3(TALLOC_CTX *mem_ctx,
 	}
 
 	if (orig->sidcount) {
-		info3->sids = (struct netr_SidAttr *)talloc_memdup(info3, orig->sids,
-					    (sizeof(struct netr_SidAttr) *
-							orig->sidcount));
+		info3->sids = talloc_array(info3, struct netr_SidAttr,
+					   orig->sidcount);
 		RET_NOMEM(info3->sids);
+		for (i = 0; i < orig->sidcount; i++) {
+			info3->sids[i].sid = sid_dup_talloc(info3->sids,
+							    orig->sids[i].sid);
+			RET_NOMEM(info3->sids[i].sid);
+		}
 	}
 
 	return info3;
diff --git a/source3/smbd/trans2.c b/source3/smbd/trans2.c
index 8535d46..4032120 100644
--- a/source3/smbd/trans2.c
+++ b/source3/smbd/trans2.c
@@ -3396,7 +3396,7 @@ cBytesSector=%u, cUnitTotal=%u, cUnitAvail=%d\n", (unsigned int)bsize, (unsigned
 			}
 
 			SIVAL(pdata, 24, conn->server_info->utok.ngroups);
-			SIVAL(pdata, 28, conn->server_info->num_sids);
+			SIVAL(pdata, 28, conn->server_info->ptok->num_sids);
 
 			/* We walk the SID list twice, but this call is fairly
 			 * infrequent, and I don't expect that it's performance


-- 
Samba Shared Repository


More information about the samba-cvs mailing list