svn commit: r304034 - head/lib/libc/net
Garrett Cooper
ngie at FreeBSD.org
Sat Aug 13 02:05:08 UTC 2016
Author: ngie
Date: Sat Aug 13 02:05:06 2016
New Revision: 304034
URL: https://svnweb.freebsd.org/changeset/base/304034
Log:
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.
MFC after: 1 week
PR: 211790
Reported by: Herbie.Robinson at stratus.com
Sponsored by: EMC / Isilon Storage Division
Modified:
head/lib/libc/net/getaddrinfo.c
Modified: head/lib/libc/net/getaddrinfo.c
==============================================================================
--- head/lib/libc/net/getaddrinfo.c Sat Aug 13 01:49:11 2016 (r304033)
+++ head/lib/libc/net/getaddrinfo.c Sat Aug 13 02:05:06 2016 (r304034)
@@ -2249,6 +2249,8 @@ _dns_getaddrinfo(void *rv, void *cb_data
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
/* 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);
More information about the svn-src-head
mailing list