Index: net/base/net_util_posix.cc |
diff --git a/net/base/net_util_posix.cc b/net/base/net_util_posix.cc |
index 5e1042b4304c6ba9ba8d17954c259edc2193f860..34f64ce162c9606341abdfb4ca107f23cb767002 100644 |
--- a/net/base/net_util_posix.cc |
+++ b/net/base/net_util_posix.cc |
@@ -143,6 +143,10 @@ bool GetNetworkList(NetworkInterfaceList* networks) { |
if (address.FromSockAddr(addr, addr_size)) { |
uint8 net_mask = 0; |
if (interface->ifa_netmask) { |
+ // If not otherwise set, assume the same sa_family as ifa_addr. |
+ if (interface->ifa_netmask->sa_family == 0) { |
+ interface->ifa_netmask->sa_family = addr->sa_family; |
+ } |
IPEndPoint netmask; |
if (netmask.FromSockAddr(interface->ifa_netmask, addr_size)) { |
net_mask = MaskPrefixLength(netmask.address()); |