From: Artem Boldariev Date: Fri, 14 Oct 2022 18:36:51 +0000 (+0300) Subject: Fix isc_nmsocket_set_tlsctx() X-Git-Tag: v9.19.7~60^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=d62eb206f7251129c65407ee038a3a4fd5071f29;p=thirdparty%2Fbind9.git Fix isc_nmsocket_set_tlsctx() During loop manager refactoring isc_nmsocket_set_tlsctx() was not properly adapted. The function is expected to broadcast the new TLS context for every worker, but this behaviour was accidentally broken. --- diff --git a/lib/isc/netmgr/netmgr.c b/lib/isc/netmgr/netmgr.c index d0b1d27f28e..ac9ba9b6957 100644 --- a/lib/isc/netmgr/netmgr.c +++ b/lib/isc/netmgr/netmgr.c @@ -2650,14 +2650,16 @@ isc__nm_async_settlsctx(isc__networker_t *worker, isc__netievent_t *ev0) { static void set_tlsctx_workers(isc_nmsocket_t *listener, isc_tlsctx_t *tlsctx) { - uint32_t nloops = isc_loopmgr_nloops(listener->worker->netmgr->loopmgr); + const size_t nworkers = + (size_t)isc_loopmgr_nloops(listener->worker->netmgr->loopmgr); /* Update the TLS context reference for every worker thread. */ - for (size_t i = 0; i < nloops; i++) { + for (size_t i = 0; i < nworkers; i++) { + isc__networker_t *worker = + &listener->worker->netmgr->workers[i]; isc__netievent__tlsctx_t *ievent = - isc__nm_get_netievent_settlsctx(listener->worker, - listener, tlsctx); - isc__nm_enqueue_ievent(listener->worker, - (isc__netievent_t *)ievent); + isc__nm_get_netievent_settlsctx(worker, listener, + tlsctx); + isc__nm_enqueue_ievent(worker, (isc__netievent_t *)ievent); } }