svn commit: samba r16864 - in branches/SAMBA_3_0/source/auth: .

vlendec at samba.org vlendec at samba.org
Fri Jul 7 18:22:26 GMT 2006


Author: vlendec
Date: 2006-07-07 18:22:26 +0000 (Fri, 07 Jul 2006)
New Revision: 16864

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

Log:
Intermediate checkin -- swap the sid_check_is_in_unix_users and
sid_check_is_in_our_domain cases.

Volker

Modified:
   branches/SAMBA_3_0/source/auth/auth_util.c


Changeset:
Modified: branches/SAMBA_3_0/source/auth/auth_util.c
===================================================================
--- branches/SAMBA_3_0/source/auth/auth_util.c	2006-07-07 12:29:10 UTC (rev 16863)
+++ branches/SAMBA_3_0/source/auth/auth_util.c	2006-07-07 18:22:26 UTC (rev 16864)
@@ -1066,45 +1066,8 @@
 		goto done;
 	}
 
-	if (sid_check_is_in_unix_users(&user_sid)) {
+	if (sid_check_is_in_our_domain(&user_sid)) {
 
-		/* This is a unix user not in passdb. We need to ask nss
-		 * directly, without consulting passdb */
-
-		struct passwd *pass;
-		size_t i;
-
-		pass = getpwuid_alloc(tmp_ctx, *uid);
-		if (pass == NULL) {
-			DEBUG(1, ("getpwuid(%d) for user %s failed\n",
-				  *uid, username));
-			goto done;
-		}
-
-		*gid = pass->pw_gid;
-		gid_to_sid(&primary_group_sid, pass->pw_gid);
-
-		if (!getgroups_unix_user(tmp_ctx, username, pass->pw_gid,
-					 &gids, &num_group_sids)) {
-			DEBUG(1, ("getgroups_unix_user for user %s failed\n",
-				  username));
-			goto done;
-		}
-
-		group_sids = talloc_array(tmp_ctx, DOM_SID, num_group_sids);
-		if (group_sids == NULL) {
-			DEBUG(1, ("talloc_array failed\n"));
-			result = NT_STATUS_NO_MEMORY;
-			goto done;
-		}
-
-		for (i=0; i<num_group_sids; i++) {
-			gid_to_sid(&group_sids[i], gids[i]);
-		}
-		*found_username = talloc_strdup(mem_ctx, pass->pw_name);
-
-	} else if (sid_check_is_in_our_domain(&user_sid)) {
-
 		/* This is a passdb user, so ask passdb */
 
 		struct samu *sam_acct = NULL;
@@ -1148,6 +1111,43 @@
 		*found_username = talloc_strdup(mem_ctx,
 						pdb_get_username(sam_acct));
 
+	} else 	if (sid_check_is_in_unix_users(&user_sid)) {
+
+		/* This is a unix user not in passdb. We need to ask nss
+		 * directly, without consulting passdb */
+
+		struct passwd *pass;
+		size_t i;
+
+		pass = getpwuid_alloc(tmp_ctx, *uid);
+		if (pass == NULL) {
+			DEBUG(1, ("getpwuid(%d) for user %s failed\n",
+				  *uid, username));
+			goto done;
+		}
+
+		*gid = pass->pw_gid;
+		gid_to_sid(&primary_group_sid, pass->pw_gid);
+
+		if (!getgroups_unix_user(tmp_ctx, username, pass->pw_gid,
+					 &gids, &num_group_sids)) {
+			DEBUG(1, ("getgroups_unix_user for user %s failed\n",
+				  username));
+			goto done;
+		}
+
+		group_sids = talloc_array(tmp_ctx, DOM_SID, num_group_sids);
+		if (group_sids == NULL) {
+			DEBUG(1, ("talloc_array failed\n"));
+			result = NT_STATUS_NO_MEMORY;
+			goto done;
+		}
+
+		for (i=0; i<num_group_sids; i++) {
+			gid_to_sid(&group_sids[i], gids[i]);
+		}
+		*found_username = talloc_strdup(mem_ctx, pass->pw_name);
+
 	} else {
 
 		/* This user is from winbind, force the primary gid to the



More information about the samba-cvs mailing list