summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorjgraettinger@chromium.org <jgraettinger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-08 22:29:52 +0000
committerjgraettinger@chromium.org <jgraettinger@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-01-08 22:29:52 +0000
commit948d3633eb3cbc455c58aeb4417fe50192a2d4f9 (patch)
treeab6225320c21f2dcd6ee911bedce01b9e02a4607 /net
parent02636762dbc7bc74a24303ca1b6d522626973d59 (diff)
downloadchromium_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.cc4
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());