From 251876b5947a5246d76c59f7616e815062f1fea2 Mon Sep 17 00:00:00 2001 From: Simon Tatham Date: Wed, 17 Oct 2012 20:48:07 +0000 Subject: [PATCH] Windows's sk_address_is_local() was returning the wrong answers for IPv6 addresses, because I'd mistakenly cast an ai_addr to the low- level 'struct in6_addr' instead of the correct 'struct sockaddr_in6'. [originally from svn r9690] --- windows/winnet.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/windows/winnet.c b/windows/winnet.c index 2088f9d7..c82959ac 100644 --- a/windows/winnet.c +++ b/windows/winnet.c @@ -645,7 +645,7 @@ int sk_address_is_local(SockAddr addr) #ifndef NO_IPV6 if (family == AF_INET6) { - return IN6_IS_ADDR_LOOPBACK((const struct in6_addr *)step.ai->ai_addr); + return IN6_IS_ADDR_LOOPBACK(&((const struct sockaddr_in6 *)step.ai->ai_addr)->sin6_addr); } else #endif if (family == AF_INET) { -- 2.45.2