From: Jong Hyuk Choi Date: Sat, 11 Sep 2004 22:37:21 +0000 (+0000) Subject: release syncinfo mem upon syncrepl failure as well as shutdown X-Git-Tag: OPENLDAP_REL_ENG_2_3_0ALPHA~537 X-Git-Url: https://git.sur5r.net/?a=commitdiff_plain;h=1fe8f2051679adfb33b0c8a6004867ae935f8251;p=openldap release syncinfo mem upon syncrepl failure as well as shutdown --- diff --git a/servers/slapd/syncrepl.c b/servers/slapd/syncrepl.c index cb39b532c8..aa824ca24b 100644 --- a/servers/slapd/syncrepl.c +++ b/servers/slapd/syncrepl.c @@ -774,6 +774,7 @@ do_syncrepl( int dostop = 0; ber_socket_t s; int i, defer = 1; + Backend *be; Debug( LDAP_DEBUG_TRACE, "=>do_syncrepl\n", 0, 0, 0 ); @@ -805,7 +806,7 @@ do_syncrepl( op.o_dn = si->si_updatedn; op.o_ndn = si->si_updatedn; op.o_managedsait = 1; - op.o_bd = si->si_be; + op.o_bd = be = si->si_be; op.o_sync_state.ctxcsn = NULL; op.o_sync_state.sid = -1; @@ -880,6 +881,8 @@ do_syncrepl( if ( !si->si_retrynum || si->si_retrynum[i] == -2 ) { ldap_pvt_runqueue_remove( &syncrepl_rq, rtask ); + LDAP_STAILQ_REMOVE( &be->be_syncinfo, si, syncinfo_s, si_next ); + syncinfo_free( si ); } else if ( si->si_retrynum[i] >= -1 ) { if ( si->si_retrynum[i] > 0 ) si->si_retrynum[i]--; @@ -1277,6 +1280,7 @@ done : } if ( si->si_syncUUID_ndn.bv_val ) { ch_free( si->si_syncUUID_ndn.bv_val ); + si->si_syncUUID_ndn.bv_val = NULL; } return ret; }