From 2b58dc89f5da5a84055fe07edaf8964f8829d1b3 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Wed, 21 Aug 2024 12:08:08 -0700 Subject: [PATCH 1/2] check for NULL before closing batchfp this silences a warning from clang-scan 19. --- bin/dig/dig.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/bin/dig/dig.c b/bin/dig/dig.c index d4867cc282..3e59f7f21a 100644 --- a/bin/dig/dig.c +++ b/bin/dig/dig.c @@ -3079,7 +3079,7 @@ void dig_shutdown(void) { destroy_lookup(default_lookup); if (atomic_load(&batchname) != 0) { - if (batchfp != stdin) { + if (batchfp != NULL && batchfp != stdin) { fclose(batchfp); } atomic_store(&batchname, 0); From a1b2c85d84906ed5940cb079796e03941df2b4f9 Mon Sep 17 00:00:00 2001 From: Evan Hunt Date: Wed, 21 Aug 2024 12:27:16 -0700 Subject: [PATCH 2/2] ensure fd is non-negative before calling dup() this silences a spurious warning from clang-scan 19. --- lib/isc/netmgr/tcp.c | 3 ++- lib/isc/netmgr/tcpdns.c | 3 ++- lib/isc/netmgr/tlsdns.c | 3 ++- lib/isc/netmgr/udp.c | 3 ++- 4 files changed, 8 insertions(+), 4 deletions(-) diff --git a/lib/isc/netmgr/tcp.c b/lib/isc/netmgr/tcp.c index 37d44bd9c8..7c77b6cb74 100644 --- a/lib/isc/netmgr/tcp.c +++ b/lib/isc/netmgr/tcp.c @@ -424,9 +424,10 @@ start_tcp_child(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nmsocket_t *sock, csock->fd = isc__nm_tcp_lb_socket(mgr, iface->type.sa.sa_family); } else { + INSIST(fd >= 0); csock->fd = dup(fd); } - REQUIRE(csock->fd >= 0); + INSIST(csock->fd >= 0); ievent = isc__nm_get_netievent_tcplisten(mgr, csock); isc__nm_maybe_enqueue_ievent(&mgr->workers[tid], diff --git a/lib/isc/netmgr/tcpdns.c b/lib/isc/netmgr/tcpdns.c index 4b5ee58b6a..6ce4a61e68 100644 --- a/lib/isc/netmgr/tcpdns.c +++ b/lib/isc/netmgr/tcpdns.c @@ -397,9 +397,10 @@ start_tcpdns_child(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nmsocket_t *sock, csock->fd = isc__nm_tcpdns_lb_socket(mgr, iface->type.sa.sa_family); } else { + INSIST(fd >= 0); csock->fd = dup(fd); } - REQUIRE(csock->fd >= 0); + INSIST(csock->fd >= 0); ievent = isc__nm_get_netievent_tcpdnslisten(mgr, csock); isc__nm_maybe_enqueue_ievent(&mgr->workers[tid], diff --git a/lib/isc/netmgr/tlsdns.c b/lib/isc/netmgr/tlsdns.c index dcec05347f..b56e0682b1 100644 --- a/lib/isc/netmgr/tlsdns.c +++ b/lib/isc/netmgr/tlsdns.c @@ -501,9 +501,10 @@ start_tlsdns_child(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nmsocket_t *sock, csock->fd = isc__nm_tlsdns_lb_socket(mgr, iface->type.sa.sa_family); } else { + INSIST(fd >= 0); csock->fd = dup(fd); } - REQUIRE(csock->fd >= 0); + INSIST(csock->fd >= 0); ievent = isc__nm_get_netievent_tlsdnslisten(mgr, csock); isc__nm_maybe_enqueue_ievent(&mgr->workers[tid], diff --git a/lib/isc/netmgr/udp.c b/lib/isc/netmgr/udp.c index 661de96ac6..1956a185ef 100644 --- a/lib/isc/netmgr/udp.c +++ b/lib/isc/netmgr/udp.c @@ -129,9 +129,10 @@ start_udp_child(isc_nm_t *mgr, isc_sockaddr_t *iface, isc_nmsocket_t *sock, csock->fd = isc__nm_udp_lb_socket(mgr, iface->type.sa.sa_family); } else { + INSIST(fd >= 0); csock->fd = dup(fd); } - REQUIRE(csock->fd >= 0); + INSIST(csock->fd >= 0); ievent = isc__nm_get_netievent_udplisten(mgr, csock); isc__nm_maybe_enqueue_ievent(&mgr->workers[tid],