Bug 1229726 - fix the data copy from sockaddr to NetAddr on OSX/FreeBSD. r=mcmanus.
--- a/netwerk/dns/mdns/libmdns/MDNSResponderReply.cpp
+++ b/netwerk/dns/mdns/libmdns/MDNSResponderReply.cpp
@@ -276,17 +276,21 @@ GetAddrInfoReplyRunnable::Reply(DNSServi
}
nsCOMPtr<nsIThread> thread(obj->GetThread());
if (!thread) {
return;
}
NetAddr address;
- memcpy(&address, aAddress, sizeof(*aAddress));
+ address.raw.family = aAddress->sa_family;
+
+ static_assert(sizeof(address.raw.data) >= sizeof(aAddress->sa_data),
+ "size of sockaddr.sa_data is too big");
+ memcpy(&address.raw.data, aAddress->sa_data, sizeof(aAddress->sa_data));
thread->Dispatch(new GetAddrInfoReplyRunnable(aSdRef,
aFlags,
aInterfaceIndex,
aErrorCode,
nsCString(aHostName),
address,
aTTL,