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");

Reply via email to