mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-24 00:29:35 -05:00
ITS#9818 Duplicate substring filters correctly
This commit is contained in:
parent
e9da624116
commit
f7bdf7aaf4
2 changed files with 31 additions and 1 deletions
|
|
@ -1000,7 +1000,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;
|
||||
|
|
@ -1017,6 +1016,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…
Reference in a new issue