mirror of
https://git.openldap.org/openldap/openldap.git
synced 2024-12-21 03:10:25 +08:00
ITS#7942 tweak previous commit
Only free when cleaning up operation controls, not response controls. (This only makes a difference on search requests, which may have multiple responses with the same set of controls.)
This commit is contained in:
parent
cdcf70eeb6
commit
8bdd54c4c1
@ -565,25 +565,27 @@ void slap_free_ctrls(
|
||||
{
|
||||
int i;
|
||||
|
||||
if( op->o_assertion != NULL ) {
|
||||
filter_free_x( op, op->o_assertion, 1 );
|
||||
op->o_assertion = NULL;
|
||||
}
|
||||
if( op->o_vrFilter != NULL) {
|
||||
vrFilter_free( op, op->o_vrFilter );
|
||||
op->o_vrFilter = NULL;
|
||||
}
|
||||
if( op->o_preread_attrs != NULL ) {
|
||||
op->o_tmpfree( op->o_preread_attrs, op->o_tmpmemctx );
|
||||
op->o_preread_attrs = NULL;
|
||||
}
|
||||
if( op->o_postread_attrs != NULL ) {
|
||||
op->o_tmpfree( op->o_postread_attrs, op->o_tmpmemctx );
|
||||
op->o_postread_attrs = NULL;
|
||||
}
|
||||
if( op->o_pagedresults_state != NULL ) {
|
||||
op->o_tmpfree( op->o_pagedresults_state, op->o_tmpmemctx );
|
||||
op->o_pagedresults_state = NULL;
|
||||
if( ctrls == op->o_ctrls ) {
|
||||
if( op->o_assertion != NULL ) {
|
||||
filter_free_x( op, op->o_assertion, 1 );
|
||||
op->o_assertion = NULL;
|
||||
}
|
||||
if( op->o_vrFilter != NULL) {
|
||||
vrFilter_free( op, op->o_vrFilter );
|
||||
op->o_vrFilter = NULL;
|
||||
}
|
||||
if( op->o_preread_attrs != NULL ) {
|
||||
op->o_tmpfree( op->o_preread_attrs, op->o_tmpmemctx );
|
||||
op->o_preread_attrs = NULL;
|
||||
}
|
||||
if( op->o_postread_attrs != NULL ) {
|
||||
op->o_tmpfree( op->o_postread_attrs, op->o_tmpmemctx );
|
||||
op->o_postread_attrs = NULL;
|
||||
}
|
||||
if( op->o_pagedresults_state != NULL ) {
|
||||
op->o_tmpfree( op->o_pagedresults_state, op->o_tmpmemctx );
|
||||
op->o_pagedresults_state = NULL;
|
||||
}
|
||||
}
|
||||
|
||||
for (i=0; ctrls[i]; i++) {
|
||||
|
Loading…
Reference in New Issue
Block a user