]> git.ipfire.org Git - thirdparty/squid.git/commitdiff
Bug 3545: FreeBSD dnsserver segfaults
authorMarcin Wisnicki <mwisnicki@gmail.com>
Wed, 30 May 2012 06:09:55 +0000 (00:09 -0600)
committerAmos Jeffries <squid3@treenet.co.nz>
Wed, 30 May 2012 06:09:55 +0000 (00:09 -0600)
src/dnsserver.cc

index 139e655bcb2c6af57ff8e200989871b791c4ea7c..24516ac1a62ae2def4d9e8e828ed58d1515b46af 100644 (file)
@@ -214,8 +214,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));
@@ -351,7 +353,8 @@ lookup(const char *buf)
         printf("$fail A system error occured looking up Domain/IP '%s': %s.\n", buf, xgai_strerror(res));
     }
 
-    xfreeaddrinfo(AI);
+    if (AI != NULL)
+        xfreeaddrinfo(AI);
 }
 
 /**
@@ -452,7 +455,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) */