svn commit: samba r9662 - in trunk/source: passdb rpc_parse rpc_server

jerry at samba.org jerry at samba.org
Fri Aug 26 19:20:06 GMT 2005


Author: jerry
Date: 2005-08-26 19:20:04 +0000 (Fri, 26 Aug 2005)
New Revision: 9662

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

Log:
merge ldap group mapping enumeration bugfix from 3.0
Modified:
   trunk/source/passdb/pdb_ldap.c
   trunk/source/rpc_parse/parse_samr.c
   trunk/source/rpc_server/srv_samr_nt.c


Changeset:
Modified: trunk/source/passdb/pdb_ldap.c
===================================================================
--- trunk/source/passdb/pdb_ldap.c	2005-08-26 19:15:19 UTC (rev 9661)
+++ trunk/source/passdb/pdb_ldap.c	2005-08-26 19:20:04 UTC (rev 9662)
@@ -4015,23 +4015,24 @@
 		return False;
 	}
 
-	vals = ldap_get_values(ld, entry, "cn");
+	/* display name is the NT group name */
+
+	vals = ldap_get_values(ld, entry, "displayName");
 	if ((vals == NULL) || (vals[0] == NULL)) {
-		DEBUG(5, ("\"cn\" not found\n"));
-		return False;
+		DEBUG(8, ("\"displayName\" not found\n"));
+
+		/* fallback to the 'cn' attribute */
+		vals = ldap_get_values(ld, entry, "cn");
+		if ((vals == NULL) || (vals[0] == NULL)) {
+			DEBUG(5, ("\"cn\" not found\n"));
+			return False;
+		}
+		pull_utf8_talloc(mem_ctx, CONST_DISCARD(char **, &result->account_name), vals[0]);
 	}
-	pull_utf8_talloc(mem_ctx,
-			 CONST_DISCARD(char **, &result->account_name),
-			 vals[0]);
-	ldap_value_free(vals);
+	else {
+		pull_utf8_talloc(mem_ctx, CONST_DISCARD(char **, &result->account_name), vals[0]);
+	}
 
-	vals = ldap_get_values(ld, entry, "displayName");
-	if ((vals == NULL) || (vals[0] == NULL))
-		DEBUG(8, ("\"displayName\" not found\n"));
-	else
-		pull_utf8_talloc(mem_ctx,
-				 CONST_DISCARD(char **, &result->fullname),
-				 vals[0]);
 	ldap_value_free(vals);
 
 	vals = ldap_get_values(ld, entry, "description");

Modified: trunk/source/rpc_parse/parse_samr.c
===================================================================
--- trunk/source/rpc_parse/parse_samr.c	2005-08-26 19:15:19 UTC (rev 9661)
+++ trunk/source/rpc_parse/parse_samr.c	2005-08-26 19:20:04 UTC (rev 9662)
@@ -1718,7 +1718,7 @@
 		DEBUG(11, ("init_sam_dispinfo_3: entry: %d\n",i));
 
 		init_unistr2(&(*sam)->str[i].uni_grp_name,
-			     entries[i].fullname, UNI_FLAGS_NONE);
+			     entries[i].account_name, UNI_FLAGS_NONE);
 		init_unistr2(&(*sam)->str[i].uni_grp_desc,
 			     entries[i].description, UNI_FLAGS_NONE);
 

Modified: trunk/source/rpc_server/srv_samr_nt.c
===================================================================
--- trunk/source/rpc_server/srv_samr_nt.c	2005-08-26 19:15:19 UTC (rev 9661)
+++ trunk/source/rpc_server/srv_samr_nt.c	2005-08-26 19:20:04 UTC (rev 9662)
@@ -669,7 +669,7 @@
 		/*
 		 * JRA. I think this should include the null. TNG does not.
 		 */
-		init_unistr2(&uni_name[i], entries[i].fullname,
+		init_unistr2(&uni_name[i], entries[i].account_name,
 			     UNI_STR_TERMINATE);
 		init_sam_entry(&sam[i], &uni_name[i], entries[i].rid);
 	}



More information about the samba-cvs mailing list