diff --git a/lib/isc/netmgr/http.c b/lib/isc/netmgr/http.c index 635c180d6d..c0f22715fb 100644 --- a/lib/isc/netmgr/http.c +++ b/lib/isc/netmgr/http.c @@ -1903,7 +1903,7 @@ clear_handlers(isc_nmsocket_t *sock) { static void clear_session(isc_nmsocket_t *sock) { - if (sock->type != isc_nm_httpsocket && sock->h2.session != NULL) { + if (sock->h2.session != NULL) { isc_nm_http_session_t *session = sock->h2.session; INSIST(ISC_LIST_EMPTY(session->sstreams)); delete_http_session(session); @@ -2221,6 +2221,11 @@ isc__nm_http_initsocket(isc_nmsocket_t *sock) { void isc__nm_http_cleanup_data(isc_nmsocket_t *sock) { + if (sock->type != isc_nm_httplistener && + sock->type != isc_nm_httpsocket) { + return; + } + if (sock->type == isc_nm_httplistener) { clear_handlers(sock); isc_rwlock_destroy(&sock->h2.lock); diff --git a/lib/isc/netmgr/tlsstream.c b/lib/isc/netmgr/tlsstream.c index 21a3c4c443..202e396713 100644 --- a/lib/isc/netmgr/tlsstream.c +++ b/lib/isc/netmgr/tlsstream.c @@ -946,6 +946,10 @@ isc__nm_async_tlsdobio(isc__networker_t *worker, isc__netievent_t *ev0) { void isc__nm_tls_cleanup_data(isc_nmsocket_t *sock) { + if (sock->type != isc_nm_tlslistener && sock->type != isc_nm_tlssocket) + { + return; + } if (sock->tlsstream.tlslistener != NULL) { REQUIRE(VALID_NMSOCK(sock->tlsstream.tlslistener)); isc__nmsocket_detach(&sock->tlsstream.tlslistener);