Index: remoting/client/plugin/pepper_util.cc |
diff --git a/remoting/client/plugin/pepper_util.cc b/remoting/client/plugin/pepper_util.cc |
index 3dc8e81634188769a99a3ec1aaa2e881b8dd68f6..eed4e003bea18bb0718a9249510ffecfb4832f5d 100644 |
--- a/remoting/client/plugin/pepper_util.cc |
+++ b/remoting/client/plugin/pepper_util.cc |
@@ -59,19 +59,21 @@ bool SocketAddressToPpAddress(const talk_base::SocketAddress& address, |
bool PpAddressToSocketAddress(const PP_NetAddress_Private& pp_address, |
talk_base::SocketAddress* address) { |
- uint8_t addr_storage[16]; |
+ union { |
+ in_addr ip4; |
+ in6_addr ip6; |
+ uint8_t raw[16]; |
+ } addr_storage; |
bool result = pp::NetAddressPrivate::GetAddress( |
- pp_address, &addr_storage, sizeof(addr_storage)); |
+ pp_address, &addr_storage.raw, sizeof(addr_storage.raw)); |
if (result) { |
switch (pp::NetAddressPrivate::GetFamily(pp_address)) { |
case PP_NETADDRESSFAMILY_PRIVATE_IPV4: |
- address->SetIP(talk_base::IPAddress( |
- *reinterpret_cast<in_addr*>(addr_storage))); |
+ address->SetIP(talk_base::IPAddress(addr_storage.ip4)); |
break; |
case PP_NETADDRESSFAMILY_PRIVATE_IPV6: |
- address->SetIP(talk_base::IPAddress( |
- *reinterpret_cast<in6_addr*>(addr_storage))); |
+ address->SetIP(talk_base::IPAddress(addr_storage.ip6)); |
break; |
default: |
result = false; |