From: Marcin Wisnicki Date: Mon, 28 May 2012 06:32:10 +0000 (-0600) Subject: Bug 3545: FreeBSD dnsserver segfaults X-Git-Tag: SQUID_3_2_0_18~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=80713a93debbd34e2a5a0e2507d30c61a2380823;p=thirdparty%2Fsquid.git Bug 3545: FreeBSD dnsserver segfaults --- diff --git a/src/dnsserver.cc b/src/dnsserver.cc index 6ad1771176..e2ba764a01 100644 --- a/src/dnsserver.cc +++ b/src/dnsserver.cc @@ -194,8 +194,10 @@ lookup(const char *buf) const bool isDomain = (getaddrinfo(buf,NULL,&hints,&AI) != 0); // reset for real lookup - freeaddrinfo(AI); - AI = NULL; + if (AI != NULL) { + freeaddrinfo(AI); + AI = NULL; + } // resolve the address/name memset(&hints, '\0', sizeof(struct addrinfo)); @@ -331,7 +333,8 @@ lookup(const char *buf) printf("$fail A system error occured looking up Domain/IP '%s': %s.\n", buf, gai_strerror(res)); } - freeaddrinfo(AI); + if (AI != NULL) + freeaddrinfo(AI); } /** @@ -432,7 +435,8 @@ squid_res_setservers(int reset) fprintf(stderr, "IPv6 nameservers not supported on this resolver\n"); #endif } - freeaddrinfo(AI); + if (AI != NULL) + freeaddrinfo(AI); #else /* !HAVE_RES_INIT || !defined(_SQUID_RES_NSADDR_LIST) */