s4/dsdb_schema: use msDS-IntId value for attribute look-up
authorKamen Mazdrashki <kamen.mazdrashki@postpath.com>
Thu, 7 Jan 2010 00:47:25 +0000 (02:47 +0200)
committerAndrew Tridgell <tridge@samba.org>
Fri, 8 Jan 2010 02:03:03 +0000 (13:03 +1100)
source4/dsdb/schema/schema_query.c

index df17787f3809fc2d884a7c42d212808bfc2bc1b2..907c6712572ec19a7fa1a9f31de5d94348c1c353 100644 (file)
@@ -55,6 +55,15 @@ const struct dsdb_attribute *dsdb_attribute_by_attributeID_id(const struct dsdb_
         */
        if (id == 0xFFFFFFFF) return NULL;
 
+       /* check for msDS-IntId type attribute */
+       if (dsdb_pfm_get_attid_type(id) == dsdb_attid_type_intid) {
+               for (c = schema->attributes; c; c = c->next) {
+                       if (c->msDS_IntId == id) {
+                               return c;
+                       }
+               }
+       }
+
        BINARY_ARRAY_SEARCH_P(schema->attributes_by_attributeID_id,
                              schema->num_attributes, attributeID_id, id, uint32_cmp, c);
        return c;