diff --git a/servers/slapd/acl.c b/servers/slapd/acl.c index 9f7be5ef59408a6e4802c5047251bc588d55da37..02bf54eeae1db4da9bc8e5a18f4d67c42c627b81 100644 --- a/servers/slapd/acl.c +++ b/servers/slapd/acl.c @@ -1348,7 +1348,14 @@ acl_check_modlist( case LDAP_MOD_ADD: assert( mlist->sml_bvalues != NULL ); - for ( bv = mlist->sml_bvalues; bv->bv_val != NULL; bv++ ) { +#ifdef SLAP_NVALUES + for ( bv = mlist->sml_nvalues + ? mlist->sml_nvalues : mlist->sml_values; + bv->bv_val != NULL; bv++ ) +#else + for ( bv = mlist->sml_bvalues; bv->bv_val != NULL; bv++ ) +#endif + { if ( ! access_allowed( be, conn, op, e, mlist->sml_desc, bv, ACL_WRITE, &state ) ) { @@ -1366,7 +1373,14 @@ acl_check_modlist( } break; } - for ( bv = mlist->sml_bvalues; bv->bv_val != NULL; bv++ ) { +#ifdef SLAP_NVALUES + for ( bv = mlist->sml_nvalues + ? mlist->sml_nvalues : mlist->sml_values; + bv->bv_val != NULL; bv++ ) +#else + for ( bv = mlist->sml_bvalues; bv->bv_val != NULL; bv++ ) +#endif + { if ( ! access_allowed( be, conn, op, e, mlist->sml_desc, bv, ACL_WRITE, &state ) ) {