2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-30 05:57:52 +00:00

TLS: Avoid accessing listener socket flags from other threads

This commit ensures that the flags inside a TLS listener socket
object (and associated worker) are accessed when accepting a
connection only from within the context of the dedicated thread, but
not other worker threads.
This commit is contained in:
Artem Boldariev 2022-11-30 22:58:13 +02:00
parent 052200cc2b
commit 4b5559cd8f

View File

@ -687,10 +687,9 @@ tlslisten_acceptcb(isc_nmhandle_t *handle, isc_result_t result, void *cbarg) {
REQUIRE(VALID_NMSOCK(tlslistensock));
REQUIRE(tlslistensock->type == isc_nm_tlslistener);
if (isc__nmsocket_closing(handle->sock) ||
isc__nmsocket_closing(tlslistensock) ||
!atomic_load(&tlslistensock->listening))
{
if (isc__nm_closing(handle->sock->worker)) {
return (ISC_R_SHUTTINGDOWN);
} else if (isc__nmsocket_closing(handle->sock)) {
return (ISC_R_CANCELED);
}