]> git.sur5r.net Git - openldap/blobdiff - servers/slapd/back-ldbm/index.c
Do not return pointers into BerElement we do not own
[openldap] / servers / slapd / back-ldbm / index.c
index 8abb05195e80710907e5933299623f24c792106e..2f38768a8cdcda734ecad3765db84bba89de6288 100644 (file)
@@ -292,11 +292,11 @@ int index_values(
 
 int
 index_entry(
-    Backend    *be,
+       Backend *be,
        int op,
-    Entry *e,
-       Attribute *ap )
+       Entry *e )
 {
+       Attribute *ap = e->e_attrs;
 #ifdef NEW_LOGGING
        LDAP_LOG( INDEX, ENTRY, 
                "index_entry: %s (%s)%ld\n", op == SLAP_INDEX_ADD_OP ? "add" : "del",
@@ -309,7 +309,13 @@ index_entry(
 
        /* add each attribute to the indexes */
        for ( ; ap != NULL; ap = ap->a_next ) {
-               index_values( be, ap->a_desc, ap->a_vals, e->e_id, op );
+               index_values( be, ap->a_desc,
+#ifdef SLAP_NVALUES
+                       ap->a_nvals,
+#else
+                       ap->a_vals,
+#endif
+                       e->e_id, op );
        }
 
 #ifdef NEW_LOGGING