mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
Fix prev commit, must test filter on cleanup
This commit is contained in:
parent
f84a67ef34
commit
b96a96c598
@ -993,13 +993,19 @@ static int translucent_search(Operation *op, SlapReply *rs) {
|
|||||||
|
|
||||||
av = tavl_end( tc.list, TAVL_DIR_LEFT );
|
av = tavl_end( tc.list, TAVL_DIR_LEFT );
|
||||||
while ( av ) {
|
while ( av ) {
|
||||||
rs->sr_flags = REP_ENTRY_MUSTBEFREED;
|
|
||||||
rs->sr_entry = av->avl_data;
|
rs->sr_entry = av->avl_data;
|
||||||
rc = send_search_entry( op, rs );
|
rc = test_filter( op, rs->sr_entry, op->ors_filter );
|
||||||
if ( rc ) break;
|
if ( rc == LDAP_COMPARE_TRUE ) {
|
||||||
|
rs->sr_flags = REP_ENTRY_MUSTBEFREED;
|
||||||
|
rc = send_search_entry( op, rs );
|
||||||
|
if ( rc ) break;
|
||||||
|
} else {
|
||||||
|
entry_free( rs->sr_entry );
|
||||||
|
}
|
||||||
av = tavl_next( av, TAVL_DIR_RIGHT );
|
av = tavl_next( av, TAVL_DIR_RIGHT );
|
||||||
}
|
}
|
||||||
tavl_free( tc.list, NULL );
|
tavl_free( tc.list, NULL );
|
||||||
|
rs->sr_entry = NULL;
|
||||||
}
|
}
|
||||||
send_ldap_result( op, rs );
|
send_ldap_result( op, rs );
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user