mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
don't cache queries that would not be answered correctly because of schema issues (ITS#5680)
This commit is contained in:
parent
21f7e756e3
commit
f01e184377
@ -1961,6 +1961,14 @@ pcache_op_cleanup( Operation *op, SlapReply *rs ) {
|
|||||||
* limit, empty the chain and ignore the rest.
|
* limit, empty the chain and ignore the rest.
|
||||||
*/
|
*/
|
||||||
if ( !si->over ) {
|
if ( !si->over ) {
|
||||||
|
/* check if the entry contains undefined
|
||||||
|
* attributes/objectClasses (ITS#5680) */
|
||||||
|
if ( test_filter( op, rs->sr_entry, si->query.filter ) != LDAP_COMPARE_TRUE ) {
|
||||||
|
Debug( pcache_debug, "%s: query not cacheable because of schema issues in DN \"%s\"\n",
|
||||||
|
op->o_log_prefix, rs->sr_entry->e_name.bv_val, 0 );
|
||||||
|
goto over;
|
||||||
|
}
|
||||||
|
|
||||||
if ( si->count < si->max ) {
|
if ( si->count < si->max ) {
|
||||||
si->count++;
|
si->count++;
|
||||||
e = entry_dup( rs->sr_entry );
|
e = entry_dup( rs->sr_entry );
|
||||||
@ -1969,6 +1977,7 @@ pcache_op_cleanup( Operation *op, SlapReply *rs ) {
|
|||||||
si->tail = e;
|
si->tail = e;
|
||||||
|
|
||||||
} else {
|
} else {
|
||||||
|
over:;
|
||||||
si->over = 1;
|
si->over = 1;
|
||||||
si->count = 0;
|
si->count = 0;
|
||||||
for (;si->head; si->head=e) {
|
for (;si->head; si->head=e) {
|
||||||
|
Loading…
Reference in New Issue
Block a user