From: Howard Chu Date: Thu, 16 Jun 2022 20:36:24 +0000 (+0100) Subject: ITS#9867 syncprov: plug findbase memleak X-Git-Tag: OPENLDAP_REL_ENG_2_5_13~21 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5a000ab40b2a3e042ec58adee7542581751b07f9;p=thirdparty%2Fopenldap.git ITS#9867 syncprov: plug findbase memleak --- diff --git a/servers/slapd/overlays/syncprov.c b/servers/slapd/overlays/syncprov.c index 36978d609a..868bb114ee 100644 --- a/servers/slapd/overlays/syncprov.c +++ b/servers/slapd/overlays/syncprov.c @@ -3163,6 +3163,8 @@ syncprov_op_search( Operation *op, SlapReply *rs ) */ 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; } @@ -3172,8 +3174,7 @@ syncprov_op_search( Operation *op, SlapReply *rs ) } 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; @@ -3302,6 +3303,7 @@ bailout: 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;