Author: jerry Date: 2005-08-26 19:21:59 +0000 (Fri, 26 Aug 2005) New Revision: 783
WebSVN: http://websvn.samba.org/cgi-bin/viewcvs.cgi?view=rev&root=samba-web&rev=783 Log: new v3 group enum patch Modified: trunk/patches/groupname_enumeration_v3.patch Changeset: Modified: trunk/patches/groupname_enumeration_v3.patch =================================================================== --- trunk/patches/groupname_enumeration_v3.patch 2005-08-26 18:57:42 UTC (rev 782) +++ trunk/patches/groupname_enumeration_v3.patch 2005-08-26 19:21:59 UTC (rev 783) @@ -1,32 +1,42 @@ -Index: passdb/pdb_ldap.c -=================================================================== ---- passdb/pdb_ldap.c (revision 9659) -+++ passdb/pdb_ldap.c (working copy) -@@ -3692,22 +3692,23 @@ +diff -urN --exclude-from=/misc/src/samba-cvs/diff.excludes samba-3.0.20-orig/source/passdb/pdb_ldap.c samba-3.0.20-new/source/passdb/pdb_ldap.c +--- samba-3.0.20-orig/source/passdb/pdb_ldap.c 2005-07-28 08:19:48.000000000 -0500 ++++ samba-3.0.20-new/source/passdb/pdb_ldap.c 2005-08-26 14:16:00.000000000 -0500 +@@ -3692,23 +3692,24 @@ return False; } -+ /* verify that the 'cn' attribute exists */ -+ - vals = ldap_get_values(ld, entry, "cn"); - if ((vals == NULL) || (vals[0] == NULL)) { - DEBUG(5, ("\"cn\" not found\n")); - return False; - } +- 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]); - ldap_value_free(vals); +- ldap_value_free(vals); ++ /* display name is the NT group name */ -+ /* display name is the NT group name */ -+ vals = ldap_get_values(ld, entry, "displayName"); - if ((vals == NULL) || (vals[0] == NULL)) +- if ((vals == NULL) || (vals[0] == NULL)) ++ if ((vals == NULL) || (vals[0] == NULL)) { DEBUG(8, ("\"displayName\" not found\n")); - else - pull_utf8_talloc(mem_ctx, +- else +- pull_utf8_talloc(mem_ctx, - CONST_DISCARD(char **, &result->fullname), -+ CONST_DISCARD(char **, &result->account_name), - vals[0]); +- vals[0]); ++ ++ /* 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]); ++ } ++ else { ++ pull_utf8_talloc(mem_ctx, CONST_DISCARD(char **, &result->account_name), vals[0]); ++ } ++ ldap_value_free(vals); + vals = ldap_get_values(ld, entry, "description");
