diff --git a/servers/slapd/filterentry.c b/servers/slapd/filterentry.c index e61922e79f..77f191256b 100644 --- a/servers/slapd/filterentry.c +++ b/servers/slapd/filterentry.c @@ -260,7 +260,9 @@ test_ava_filter( for ( i = 0; a->a_vals[i] != NULL; i++ ) { int rc; -#ifndef SLAPD_SCHEMA_NOT_COMPAT +#ifdef SLAPD_SCHEMA_NOT_COMPAT + rc = 0; +#else rc = value_cmp( a->a_vals[i], &ava->ava_value, a->a_syntax, 3 ); #endif diff --git a/servers/slapd/value.c b/servers/slapd/value.c index 21538c23e1..ec7bc11f84 100644 --- a/servers/slapd/value.c +++ b/servers/slapd/value.c @@ -128,13 +128,18 @@ value_normalize( return LDAP_INAPPROPRIATE_MATCHING; } - rc = (mr->smr_normalize)( usage, - ad->ad_type->sat_syntax, - mr, in, out ); + if( mr->smr_normalize ) { + rc = (mr->smr_normalize)( usage, + ad->ad_type->sat_syntax, + mr, in, out ); - if( rc != LDAP_SUCCESS ) { - *text = "unable to normalize value"; - return LDAP_INVALID_SYNTAX; + if( rc != LDAP_SUCCESS ) { + *text = "unable to normalize value"; + return LDAP_INVALID_SYNTAX; + } + + } else { + *out = ber_bvdup( in ); } return LDAP_SUCCESS;