diff --git a/servers/slapd/controls.c b/servers/slapd/controls.c index 88a60794264f9fede90550c498acd5e5b5edfc4b..ba0527a433ce5f64e8474f8138084a4491053f1b 100644 --- a/servers/slapd/controls.c +++ b/servers/slapd/controls.c @@ -1392,6 +1392,7 @@ static int parseAssert ( } if( op->o_assertion != NULL ) { filter_free_x( op, op->o_assertion, 1 ); + op->o_assertion = NULL; } return rs->sr_err; } diff --git a/servers/slapd/saslauthz.c b/servers/slapd/saslauthz.c index 6e49fe189aa61021424eb8b75eba97e89941b4d5..d65c7b52f924956e136d1e9c509614807bd87c10 100644 --- a/servers/slapd/saslauthz.c +++ b/servers/slapd/saslauthz.c @@ -1226,7 +1226,10 @@ is_dn: bv.bv_len = uri->bv_len - (bv.bv_val - uri->bv_val); done: if( rc != LDAP_SUCCESS ) { - if( *filter ) filter_free_x( op, *filter, 1 ); + if( *filter ) { + filter_free_x( op, *filter, 1 ); + *filter = NULL; + } BER_BVZERO( base ); BER_BVZERO( fstr ); } else {