mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-04-18 15:20:35 +08:00
ITS#9818 Duplicate substring filters correctly
This commit is contained in:
parent
438c855d5f
commit
4829071dcf
@ -999,7 +999,6 @@ trans_filter_dup(Operation *op, Filter *f, AttributeName *an)
|
||||
case LDAP_FILTER_GE:
|
||||
case LDAP_FILTER_LE:
|
||||
case LDAP_FILTER_APPROX:
|
||||
case LDAP_FILTER_SUBSTRINGS:
|
||||
case LDAP_FILTER_EXT:
|
||||
if ( !f->f_av_desc || ad_inlist( f->f_av_desc, an )) {
|
||||
AttributeAssertion *nava;
|
||||
@ -1016,6 +1015,29 @@ trans_filter_dup(Operation *op, Filter *f, AttributeName *an)
|
||||
}
|
||||
break;
|
||||
|
||||
case LDAP_FILTER_SUBSTRINGS:
|
||||
if ( !f->f_av_desc || ad_inlist( f->f_av_desc, an )) {
|
||||
SubstringsAssertion *nsub;
|
||||
|
||||
n = op->o_tmpalloc( sizeof(Filter), op->o_tmpmemctx );
|
||||
n->f_choice = f->f_choice;
|
||||
|
||||
nsub = op->o_tmpalloc( sizeof(SubstringsAssertion), op->o_tmpmemctx );
|
||||
*nsub = *f->f_sub;
|
||||
n->f_sub = nsub;
|
||||
|
||||
if ( !BER_BVISNULL( &f->f_sub_initial ))
|
||||
ber_dupbv_x( &n->f_sub_initial, &f->f_sub_initial, op->o_tmpmemctx );
|
||||
|
||||
ber_bvarray_dup_x( &n->f_sub_any, f->f_sub_any, op->o_tmpmemctx );
|
||||
|
||||
if ( !BER_BVISNULL( &f->f_sub_final ))
|
||||
ber_dupbv_x( &n->f_sub_final, &f->f_sub_final, op->o_tmpmemctx );
|
||||
|
||||
n->f_next = NULL;
|
||||
}
|
||||
break;
|
||||
|
||||
case LDAP_FILTER_AND:
|
||||
case LDAP_FILTER_OR:
|
||||
case LDAP_FILTER_NOT: {
|
||||
|
@ -755,6 +755,14 @@ if test -z "$ATTR" ; then
|
||||
exit 1
|
||||
fi
|
||||
|
||||
$LDAPSEARCH -H $URI2 -b "o=translucent" "(employeeType=consult*)" > $SEARCHOUT 2>&1
|
||||
ATTR=`grep dn: $SEARCHOUT` > $NOWHERE 2>&1
|
||||
if test -z "$ATTR" ; then
|
||||
echo "got no result, should have found entry"
|
||||
test $KILLSERVERS != no && kill -HUP $KILLPIDS
|
||||
exit 1
|
||||
fi
|
||||
|
||||
echo "Testing search: unconfigured remote filter..."
|
||||
$LDAPSEARCH -H $URI2 -b "o=translucent" "(|(employeeType=foo)(carlicense=right))" > $SEARCHOUT 2>&1
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user