From 0cfef78e0f136387fc4e09cb4dac21b9329f636b Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 26 Jan 2004 23:53:41 +0000 Subject: [PATCH] 1563. [bug] Gracefully fail when unable to obtain neither a IPv4 or a IPv6 dispatch. [RT #10230] --- CHANGES | 3 +++ bin/named/server.c | 9 ++++++++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/CHANGES b/CHANGES index b372b214d0..4518e77708 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,6 @@ +1563. [bug] Gracefully fail when unable to obtain neither a IPv4 + or a IPv6 dispatch. [RT #10230] + 1562. [bug] isc_socket_create() and isc_socket_accept() could leak memory under error conditions. [RT #10230] diff --git a/bin/named/server.c b/bin/named/server.c index cbba407bf2..e09785c0c8 100644 --- a/bin/named/server.c +++ b/bin/named/server.c @@ -15,7 +15,7 @@ * WITH THE USE OR PERFORMANCE OF THIS SOFTWARE. */ -/* $Id: server.c,v 1.339.2.15.2.36 2004/01/05 07:00:12 marka Exp $ */ +/* $Id: server.c,v 1.339.2.15.2.37 2004/01/26 23:53:41 marka Exp $ */ #include @@ -758,6 +758,13 @@ configure_view(dns_view_t *view, cfg_obj_t *config, cfg_obj_t *vconfig, */ CHECK(get_view_querysource_dispatch(maps, AF_INET, &dispatch4)); CHECK(get_view_querysource_dispatch(maps, AF_INET6, &dispatch6)); + if (dispatch4 == NULL && dispatch6 == NULL) { + UNEXPECTED_ERROR(__FILE__, __LINE__, + "unable to obtain neither a IPv4 or" + " a IPv6 dispatch"); + result = ISC_R_UNEXPECTED; + goto cleanup; + } CHECK(dns_view_createresolver(view, ns_g_taskmgr, 31, ns_g_socketmgr, ns_g_timermgr, 0, ns_g_dispatchmgr,