Skip to content

Commit

Permalink
Use std::memcpy to fix alignment
Browse files Browse the repository at this point in the history
As suggested by @madmaxoft
  • Loading branch information
tigerw committed Mar 10, 2015
1 parent 20da3d3 commit 4ffaace
Showing 1 changed file with 8 additions and 2 deletions.
10 changes: 8 additions & 2 deletions src/OSSupport/NetworkInterfaceEnum.cpp
Expand Up @@ -81,13 +81,19 @@ static AString PrintAddress(ifaddrs * InterfaceAddress)
case AF_INET:
{ // IPv4
char AddressBuffer[INET_ADDRSTRLEN];
inet_ntop(AF_INET, &(reinterpret_cast<struct sockaddr_in *>(reinterpret_cast<void *>(InterfaceAddress->ifa_addr))->sin_addr), AddressBuffer, INET_ADDRSTRLEN);
sockaddr_in InternetSocket;

std::memcpy(&InternetSocket, InterfaceAddress->ifa_addr, sizeof(InternetSocket));
inet_ntop(AF_INET, &InternetSocket.sin_addr, AddressBuffer, INET_ADDRSTRLEN);
return AddressBuffer;
}
case AF_INET6:
{ // IPv6
char AddressBuffer[INET6_ADDRSTRLEN];
inet_ntop(AF_INET6, &(reinterpret_cast<struct sockaddr_in6 *>(reinterpret_cast<void *>(InterfaceAddress->ifa_addr))->sin6_addr), AddressBuffer, INET6_ADDRSTRLEN);
sockaddr_in6 InternetSocket;

std::memcpy(&InternetSocket, InterfaceAddress->ifa_addr, sizeof(InternetSocket));
inet_ntop(AF_INET6, &InternetSocket.sin6_addr, AddressBuffer, INET6_ADDRSTRLEN);
return AddressBuffer;
}
default:
Expand Down

0 comments on commit 4ffaace

Please sign in to comment.