diff --git a/servers/slapd/back-bdb/index.c b/servers/slapd/back-bdb/index.c index dd695783df..1120054eb3 100644 --- a/servers/slapd/back-bdb/index.c +++ b/servers/slapd/back-bdb/index.c @@ -356,8 +356,14 @@ bdb_index_entry( /* add each attribute to the indexes */ for ( ; ap != NULL; ap = ap->a_next ) { - rc = bdb_index_values( be, txn, - ap->a_desc, ap->a_vals, e->e_id, op ); +#ifdef SLAP_NVALUES + rc = bdb_index_values( be, txn, ap->a_desc, + ap->a_nvals ? ap->a_nvals : ap->a_vals, + e->e_id, op ); +#else + rc = bdb_index_values( be, txn, ap->a_desc, + ap->a_vals, e->e_id, op ); +#endif if( rc != LDAP_SUCCESS ) { #ifdef NEW_LOGGING diff --git a/servers/slapd/back-bdb/modify.c b/servers/slapd/back-bdb/modify.c index 167938a960..9fe2b47ef6 100644 --- a/servers/slapd/back-bdb/modify.c +++ b/servers/slapd/back-bdb/modify.c @@ -209,7 +209,12 @@ int bdb_modify_internal( /* start with deleting the old index entries */ for ( ap = save_attrs; ap != NULL; ap = ap->a_next ) { if ( ap->a_flags & SLAP_ATTR_IXDEL ) { - rc = bdb_index_values( be, tid, ap->a_desc, ap->a_vals, + rc = bdb_index_values( be, tid, ap->a_desc, +#ifdef SLAP_NVALUES + ap->a_nvals ? ap->a_nvals : ap->a_vals, +#else + ap->a_vals, +#endif e->e_id, SLAP_INDEX_DELETE_OP ); if ( rc != LDAP_SUCCESS ) { attrs_free( e->e_attrs ); @@ -232,7 +237,12 @@ int bdb_modify_internal( /* add the new index entries */ for ( ap = e->e_attrs; ap != NULL; ap = ap->a_next ) { if (ap->a_flags & SLAP_ATTR_IXADD) { - rc = bdb_index_values( be, tid, ap->a_desc, ap->a_vals, + rc = bdb_index_values( be, tid, ap->a_desc, +#ifdef SLAP_NVALUES + ap->a_nvals ? ap->a_nvals : ap->a_vals, +#else + ap->a_vals, +#endif e->e_id, SLAP_INDEX_ADD_OP ); if ( rc != LDAP_SUCCESS ) { attrs_free( e->e_attrs );