2
0
mirror of https://gitlab.isc.org/isc-projects/bind9 synced 2025-08-31 06:25:31 +00:00

The route socket and its storage was detached while still reading

The interfacemgr and the .route was being detached while the network
manager had pending read from the socket.  Instead of detaching from the
socket, we need to cancel the read which in turn will detach the route
socket and the associated interfacemgr.
This commit is contained in:
Ondřej Surý
2022-04-25 13:38:33 +02:00
parent 2be07a4316
commit 9ae34a04e8

View File

@@ -215,16 +215,9 @@ route_recv(isc_nmhandle_t *handle, isc_result_t eresult, isc_region_t *region,
return;
}
if (eresult == ISC_R_SHUTTINGDOWN) {
/*
* The mgr->route and mgr is detached in
* ns_interfacemgr_shutdown()
*/
return;
}
if (eresult != ISC_R_SUCCESS) {
if (eresult != ISC_R_CANCELED) {
if (eresult != ISC_R_CANCELED && eresult != ISC_R_SHUTTINGDOWN)
{
isc_log_write(IFMGR_COMMON_LOGARGS, ISC_LOG_ERROR,
"automatic interface scanning "
"terminated: %s",
@@ -453,8 +446,7 @@ ns_interfacemgr_shutdown(ns_interfacemgr_t *mgr) {
purge_old_interfaces(mgr);
if (mgr->route != NULL) {
isc_nmhandle_detach(&mgr->route);
ns_interfacemgr_detach(&mgr);
isc_nm_cancelread(mgr->route);
}
}