mirror of
https://git.openldap.org/openldap/openldap.git
synced 2025-12-28 18:49:34 -05:00
ITS#4991 restore save_attrs when a request is finished to let do_search()
cleanup correctly
This commit is contained in:
parent
7203276785
commit
11e8c186bf
1 changed files with 13 additions and 3 deletions
|
|
@ -1251,6 +1251,18 @@ cache_entries(
|
|||
return return_val;
|
||||
}
|
||||
|
||||
static int
|
||||
pcache_op_cleanup( Operation *op, SlapReply *rs ) {
|
||||
slap_callback *cb = op->o_callback;
|
||||
struct search_info *si = cb->sc_private;
|
||||
if ( si->save_attrs != NULL ) {
|
||||
rs->sr_attrs = si->save_attrs;
|
||||
op->ors_attrs = si->save_attrs;
|
||||
}
|
||||
op->o_callback = op->o_callback->sc_next;
|
||||
op->o_tmpfree( cb, op->o_tmpmemctx );
|
||||
}
|
||||
|
||||
static int
|
||||
pcache_response(
|
||||
Operation *op,
|
||||
|
|
@ -1264,7 +1276,6 @@ pcache_response(
|
|||
if ( si->save_attrs != NULL ) {
|
||||
rs->sr_attrs = si->save_attrs;
|
||||
op->ors_attrs = si->save_attrs;
|
||||
si->save_attrs = NULL;
|
||||
}
|
||||
|
||||
if ( rs->sr_type == REP_SEARCH ) {
|
||||
|
|
@ -1332,8 +1343,7 @@ pcache_response(
|
|||
filter_free( si->query.filter );
|
||||
}
|
||||
|
||||
/* free self */
|
||||
op->o_callback->sc_cleanup = slap_freeself_cb;
|
||||
op->o_callback->sc_cleanup = pcache_op_cleanup;
|
||||
}
|
||||
return SLAP_CB_CONTINUE;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in a new issue