--- servers/slapd/filter.c 2003/04/12 03:12:40 1.110 +++ servers/slapd/filter.c 2003/04/18 02:44:06 1.111 @@ -1,5 +1,5 @@ /* filter.c - routines for parsing and dealing with filters */ -/* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.109 2003/04/10 23:29:29 hyc Exp $ */ +/* $OpenLDAP: pkg/ldap/servers/slapd/filter.c,v 1.110 2003/04/12 03:12:40 hyc Exp $ */ /* * Copyright 1998-2003 The OpenLDAP Foundation, All Rights Reserved. * COPYING RESTRICTIONS APPLY, see COPYRIGHT file @@ -278,6 +278,7 @@ get_filter( if( err != LDAP_SUCCESS && err != SLAPD_DISCONNECT ) { /* ignore error */ + *text = NULL; f.f_choice = SLAPD_FILTER_COMPUTED; f.f_result = SLAPD_COMPARE_UNDEFINED; err = LDAP_SUCCESS; @@ -372,7 +373,13 @@ get_ssa( rc = slap_bv2ad( &desc, &ssa.sa_desc, text ); if( rc != LDAP_SUCCESS ) { - return LDAP_SUCCESS; + /* skip over the rest of this filter */ + for ( tag = ber_first_element( ber, &len, &last ); + tag != LBER_DEFAULT; + tag = ber_next_element( ber, &len, last ) ) { + ber_scanf( ber, "x" ); + } + return rc; } rc = LDAP_PROTOCOL_ERROR;