summaryrefslogtreecommitdiff
path: root/lib/irs/getaddrinfo.c
diff options
context:
space:
mode:
Diffstat (limited to 'lib/irs/getaddrinfo.c')
-rw-r--r--lib/irs/getaddrinfo.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/lib/irs/getaddrinfo.c b/lib/irs/getaddrinfo.c
index 24d35bf691d9..f821635e984e 100644
--- a/lib/irs/getaddrinfo.c
+++ b/lib/irs/getaddrinfo.c
@@ -178,6 +178,7 @@ static int add_ipv6(const char *hostname, int flags, struct addrinfo **aip,
int socktype, int port);
static void set_order(int, int (**)(const char *, int, struct addrinfo **,
int, int));
+static void _freeaddrinfo(struct addrinfo *ai);
#define FOUND_IPV4 0x1
#define FOUND_IPV6 0x2
@@ -339,7 +340,7 @@ getaddrinfo(const char *hostname, const char *servname,
if (family == AF_INET6 || family == 0) {
ai = ai_alloc(AF_INET6, sizeof(struct sockaddr_in6));
if (ai == NULL) {
- freeaddrinfo(ai_list);
+ _freeaddrinfo(ai_list);
return (EAI_MEMORY);
}
ai->ai_socktype = socktype;
@@ -458,7 +459,7 @@ getaddrinfo(const char *hostname, const char *servname,
NI_NUMERICHOST) == 0) {
ai->ai_canonname = strdup(nbuf);
if (ai->ai_canonname == NULL) {
- freeaddrinfo(ai);
+ _freeaddrinfo(ai);
return (EAI_MEMORY);
}
} else {
@@ -481,7 +482,7 @@ getaddrinfo(const char *hostname, const char *servname,
socktype, port);
if (err != 0) {
if (ai_list != NULL) {
- freeaddrinfo(ai_list);
+ _freeaddrinfo(ai_list);
ai_list = NULL;
}
break;
@@ -831,7 +832,7 @@ process_answer(isc_task_t *task, isc_event_t *event) {
error = EAI_NONAME;
} else {
if (trans->ai_sentinel.ai_next != NULL) {
- freeaddrinfo(trans->ai_sentinel.ai_next);
+ _freeaddrinfo(trans->ai_sentinel.ai_next);
trans->ai_sentinel.ai_next = NULL;
}
}
@@ -1123,7 +1124,7 @@ add_ipv4(const char *hostname, int flags, struct addrinfo **aip,
ai = ai_clone(*aip, AF_INET); /* don't use ai_clone() */
if (ai == NULL) {
- freeaddrinfo(*aip);
+ _freeaddrinfo(*aip);
return (EAI_MEMORY);
}
@@ -1161,6 +1162,11 @@ add_ipv6(const char *hostname, int flags, struct addrinfo **aip,
/*% Free address info. */
void
freeaddrinfo(struct addrinfo *ai) {
+ _freeaddrinfo(ai);
+}
+
+static void
+_freeaddrinfo(struct addrinfo *ai) {
struct addrinfo *ai_next;
while (ai != NULL) {