From: Ondřej Kuzník Date: Fri, 2 Sep 2022 12:23:17 +0000 (+0100) Subject: ITS#9913 Protect code in clients_destroy and tier_destroy X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a033c1e74e0d99e43d2f60cbe33bc8e56e86fa90;p=thirdparty%2Fopenldap.git ITS#9913 Protect code in clients_destroy and tier_destroy --- diff --git a/servers/lloadd/client.c b/servers/lloadd/client.c index 086e067316..8faf4aafad 100644 --- a/servers/lloadd/client.c +++ b/servers/lloadd/client.c @@ -796,8 +796,10 @@ client_destroy( LloadConnection *c ) void clients_destroy( int gentle ) { + epoch_t epoch = epoch_join(); checked_lock( &clients_mutex ); connections_walk( &clients_mutex, &clients, lload_connection_close, &gentle ); checked_unlock( &clients_mutex ); + epoch_leave( epoch ); } diff --git a/servers/lloadd/tier.c b/servers/lloadd/tier.c index e8ea4e82eb..84ead03fff 100644 --- a/servers/lloadd/tier.c +++ b/servers/lloadd/tier.c @@ -67,8 +67,11 @@ tier_destroy( LloadTier *tier ) { while ( !LDAP_CIRCLEQ_EMPTY( &tier->t_backends ) ) { LloadBackend *b = LDAP_CIRCLEQ_FIRST( &tier->t_backends ); + epoch_t epoch = epoch_join(); lload_backend_destroy( b ); + + epoch_leave( epoch ); } #ifdef BALANCER_MODULE