Commit 43bd1468 authored by Howard Chu's avatar Howard Chu Committed by Quanah Gibson-Mount
Browse files

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.)
parent abd51ad3
......@@ -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++) {
......
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment