X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;ds=sidebyside;f=servers%2Fslapd%2Fschema_prep.c;h=48d00a9df324972e79b1c75502b030ef1ccbca45;hb=89127c93d02d547e89e767af0736ac6d2ebab90d;hp=b9bf64226eb6ad594e3cd3f703dd6487fe42839e;hpb=4b48c05a8e1b9ed776a4bee10ee91986941105de;p=openldap diff --git a/servers/slapd/schema_prep.c b/servers/slapd/schema_prep.c index b9bf64226e..48d00a9df3 100644 --- a/servers/slapd/schema_prep.c +++ b/servers/slapd/schema_prep.c @@ -1,7 +1,7 @@ /* schema_init.c - init builtin schema */ /* $OpenLDAP$ */ /* - * Copyright 1998-2002 The OpenLDAP Foundation, All Rights Reserved. + * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file */ @@ -28,14 +28,15 @@ static int objectClassNormalize( struct slap_syntax *syntax, /* NULL if in is asserted value */ struct slap_matching_rule *mr, struct berval * in, - struct berval * out ) + struct berval * out, + void *ctx ) { ObjectClass *oc = oc_bvfind( in ); if( oc != NULL ) { - ber_dupbv( out, &oc->soc_cname ); + ber_dupbv_x( out, &oc->soc_cname, ctx ); } else { - ber_dupbv( out, in ); + ber_dupbv_x( out, in, ctx ); } #if OCDEBUG @@ -90,7 +91,8 @@ objectSubClassMatch( return SLAPD_COMPARE_UNDEFINED; } - if( SLAP_IS_MR_VALUE_SYNTAX_MATCH( flags ) ) { + if( SLAP_MR_IS_VALUE_OF_ATTRIBUTE_SYNTAX( flags ) ) + { *matchp = ( asserted != oc ); } else { *matchp = !is_object_subclass( asserted, oc ); @@ -117,7 +119,8 @@ static int objectSubClassIndexer( struct slap_matching_rule *mr, struct berval *prefix, BerVarray values, - BerVarray *keysp ) + BerVarray *keysp, + void *ctx ) { int rc, noc, i; BerVarray ocvalues; @@ -127,7 +130,7 @@ static int objectSubClassIndexer( } /* over allocate */ - ocvalues = ch_malloc( sizeof( struct berval ) * (noc+16) ); + ocvalues = sl_malloc( sizeof( struct berval ) * (noc+16), ctx ); /* copy listed values (and termination) */ for( i=0; i