summaryrefslogtreecommitdiffstats
path: root/lib/libc
diff options
context:
space:
mode:
authorngie <ngie@FreeBSD.org>2016-08-28 07:08:29 +0000
committerngie <ngie@FreeBSD.org>2016-08-28 07:08:29 +0000
commit7b92077cd8de6c41fc0029db2a49c7ae48f0ad3b (patch)
tree041fd8706d3f55188a6edfc59a8eee7bd47e0dce /lib/libc
parentee96ae8977c1a30b6bd6d5368ea3ecaa02c86ff3 (diff)
downloadFreeBSD-src-7b92077cd8de6c41fc0029db2a49c7ae48f0ad3b.zip
FreeBSD-src-7b92077cd8de6c41fc0029db2a49c7ae48f0ad3b.tar.gz
MFC r304034:
Initialize `ai` to NULL and test for `ai` with type-appropriate values Depending on the address family and ai_flags containing AI_V4MAPPED, it might not do a proper DNS lookup on the provided DNS address Convert some `ai` boolean true/false checks to NULL/non-NULL while here. PR: 211790
Diffstat (limited to 'lib/libc')
-rw-r--r--lib/libc/net/getaddrinfo.c8
1 files changed, 5 insertions, 3 deletions
diff --git a/lib/libc/net/getaddrinfo.c b/lib/libc/net/getaddrinfo.c
index 0f82fd3..56500c6 100644
--- a/lib/libc/net/getaddrinfo.c
+++ b/lib/libc/net/getaddrinfo.c
@@ -2249,6 +2249,8 @@ _dns_getaddrinfo(void *rv, void *cb_data, va_list ap)
struct res_target q, q2;
res_state res;
+ ai = NULL;
+
hostname = va_arg(ap, char *);
pai = va_arg(ap, const struct addrinfo *);
@@ -2327,16 +2329,16 @@ _dns_getaddrinfo(void *rv, void *cb_data, va_list ap)
/* prefer IPv6 */
if (q.next) {
ai = getanswer(buf2, q2.n, q2.name, q2.qtype, pai, res);
- if (ai) {
+ if (ai != NULL) {
cur->ai_next = ai;
while (cur && cur->ai_next)
cur = cur->ai_next;
}
}
- if (!ai || pai->ai_family != AF_UNSPEC ||
+ if (ai == NULL || pai->ai_family != AF_UNSPEC ||
(pai->ai_flags & (AI_ALL | AI_V4MAPPED)) != AI_V4MAPPED) {
ai = getanswer(buf, q.n, q.name, q.qtype, pai, res);
- if (ai)
+ if (ai != NULL)
cur->ai_next = ai;
}
free(buf);
OpenPOWER on IntegriCloud