*/
ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );
if ( slapd_shutdown ) {
+aband:
+ ch_free( sop->s_base.bv_val );
ch_free( sop );
return SLAPD_ABANDON;
}
}
if ( op->o_abandon ) {
ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );
- ch_free( sop );
- return SLAPD_ABANDON;
+ goto aband;
}
ldap_pvt_thread_mutex_init( &sop->s_mutex );
sop->s_next = si->si_ops;
sp = &(*sp)->s_next;
*sp = sop->s_next;
ldap_pvt_thread_mutex_unlock( &si->si_ops_mutex );
+ ch_free( sop->s_base.bv_val );
ch_free( sop );
}
rs->sr_ctrls = NULL;