diff options
author | jgraettinger@chromium.org <jgraettinger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-08 22:29:52 +0000 |
---|---|---|
committer | jgraettinger@chromium.org <jgraettinger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-01-08 22:29:52 +0000 |
commit | 948d3633eb3cbc455c58aeb4417fe50192a2d4f9 (patch) | |
tree | ab6225320c21f2dcd6ee911bedce01b9e02a4607 /net | |
parent | 02636762dbc7bc74a24303ca1b6d522626973d59 (diff) | |
download | chromium_src-948d3633eb3cbc455c58aeb4417fe50192a2d4f9.zip chromium_src-948d3633eb3cbc455c58aeb4417fe50192a2d4f9.tar.gz chromium_src-948d3633eb3cbc455c58aeb4417fe50192a2d4f9.tar.bz2 |
GetNetworkList() copies sa_family of ifa_addr to ifa_netmask if unset
BUG=325910
TEST=Confirmed NetUtilTest.GetNetworkList now passes in presence of OpenVPN tunnel.
Review URL: https://codereview.chromium.org/105653003
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@243675 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r-- | net/base/net_util_posix.cc | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/net/base/net_util_posix.cc b/net/base/net_util_posix.cc index 0045938..268d12d 100644 --- a/net/base/net_util_posix.cc +++ b/net/base/net_util_posix.cc @@ -150,6 +150,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()); |