From 422213c1719ca324faced1b4c6210a36b4c7506a Mon Sep 17 00:00:00 2001 From: Anton Lindqvist Date: Wed, 6 Jan 2021 12:35:22 +0100 Subject: [PATCH] add missing null check I have a unbound forward zone configured on my router for my $DAYJOB. The address associated with the zone is only accessible when the router is connected to a VPN. If the VPN connection is absent, trying to resolve any domain that must be handled by the zone crashes unbound. Turns out there's a missing NULL check in `comm_point_send_udp_msg()`. The same routine already has `if (addr) {} else {}` branches so I guess protecting the call to `log_addr()` using the same conditional is reasonable I have also committed the same fix to unbound shipped with OpenBSD[1]. [1] https://marc.info/?l=openbsd-cvs&m=160993335615698&w=2 --- util/netevent.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/util/netevent.c b/util/netevent.c index a5c3fe666..a2c0e6073 100644 --- a/util/netevent.c +++ b/util/netevent.c @@ -388,8 +388,9 @@ comm_point_send_udp_msg(struct comm_point *c, sldns_buffer* packet, } else { verbose(VERB_OPS, "send failed: %s", sock_strerror(errno)); } - log_addr(VERB_OPS, "remote address is", - (struct sockaddr_storage*)addr, addrlen); + if(addr) + log_addr(VERB_OPS, "remote address is", + (struct sockaddr_storage*)addr, addrlen); return 0; } else if((size_t)sent != sldns_buffer_remaining(packet)) { log_err("sent %d in place of %d bytes", -- 2.47.2