--- servers/slapd/filter.c 2001/12/07 15:43:18 1.13.4.10 +++ servers/slapd/filter.c 2000/08/28 16:38:48 1.52 @@ -1,5 +1,5 @@ /* filter.c - routines for parsing and dealing with filters */ -/* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.13.4.9 2001/08/31 20:24:17 kurt Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.51 2000/07/02 15:14:37 kurt Exp $ */ /* * Copyright 1998-2000 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file @@ -183,12 +183,7 @@ get_filter( err = slap_bv2ad( &type, &f->f_desc, text ); if( err != LDAP_SUCCESS ) { - /* unrecognized attribute description or other error */ - f->f_choice = SLAPD_FILTER_COMPUTED; - f->f_result = LDAP_COMPARE_FALSE; - *fstr = ch_strdup( "(unrecogized=*)" ); ch_free( type.bv_val ); - err = LDAP_SUCCESS; break; } @@ -262,7 +257,7 @@ get_filter( case LDAP_FILTER_EXT: /* not yet implemented */ Debug( LDAP_DEBUG_ANY, "extensible match not yet implemented.\n", - 0, 0, 0 ); + f->f_choice, 0, 0 ); (void) ber_skip_tag( ber, &len ); f->f_choice = SLAPD_FILTER_COMPUTED; f->f_result = SLAPD_COMPARE_UNDEFINED; @@ -270,7 +265,7 @@ get_filter( break; default: - (void) ber_scanf( ber, "x" ); /* skip the element */ + (void) ber_skip_tag( ber, &len ); Debug( LDAP_DEBUG_ANY, "get_filter: unknown filter type=%lu\n", f->f_choice, 0, 0 ); f->f_choice = SLAPD_FILTER_COMPUTED; @@ -448,10 +443,7 @@ get_substring_filter( switch ( tag ) { case LDAP_SUBSTRING_INITIAL: Debug( LDAP_DEBUG_FILTER, " INITIAL\n", 0, 0, 0 ); - if ( f->f_sub_initial != NULL - || f->f_sub_any != NULL - || f->f_sub_final != NULL ) - { + if ( f->f_sub_initial != NULL ) { ber_bvfree( value ); goto return_error; } @@ -469,12 +461,6 @@ get_substring_filter( case LDAP_SUBSTRING_ANY: Debug( LDAP_DEBUG_FILTER, " ANY\n", 0, 0, 0 ); - - if ( f->f_sub_final != NULL ) { - ber_bvfree( value ); - goto return_error; - } - if( ber_bvecadd( &f->f_sub_any, value ) < 0 ) { ber_bvfree( value ); goto return_error; @@ -492,12 +478,10 @@ get_substring_filter( case LDAP_SUBSTRING_FINAL: Debug( LDAP_DEBUG_FILTER, " FINAL\n", 0, 0, 0 ); - if ( f->f_sub_final != NULL ) { ber_bvfree( value ); goto return_error; } - f->f_sub_final = value; if( fstr ) { @@ -577,7 +561,6 @@ filter_free( Filter *f ) if ( f->f_sub_final != NULL ) { ber_bvfree( f->f_sub_final ); } - ch_free( f->f_sub ); break; case LDAP_FILTER_AND: