Callers may pass a struct smaller than sockaddr_storage, but a
sockaddr_storage-sized chunk gets copied to asock->remoteAddr.
memcpy() should be used.
One such caller is AsyncSocket_ConnectUnixDomain(). It passes sockaddr_un.
sizeof(sockaddr_un) == 110, sizeof(sockaddr_storage) == 128.
Caught by AddressSanitizer.
asock->clientData = clientData;
/* Store a copy of the sockaddr_storage so we can look it up later. */
- asock->remoteAddr = *addr;
+ memcpy(&(asock->remoteAddr), addr, addrLen);
asock->remoteAddrLen = addrLen;
AsyncTCPSocketUnlock(asock);