Index: net/dns/dns_config_service_posix_unittest.cc |
diff --git a/net/dns/dns_config_service_posix_unittest.cc b/net/dns/dns_config_service_posix_unittest.cc |
index 227128097b4c71d139e18cde3107d3be44b3285b..5a2fad93d2a944ab19a0c59eaf6289eaad17d827 100644 |
--- a/net/dns/dns_config_service_posix_unittest.cc |
+++ b/net/dns/dns_config_service_posix_unittest.cc |
@@ -122,5 +122,27 @@ TEST(DnsConfigServicePosixTest, ConvertResStateToDnsConfig) { |
EXPECT_TRUE(expected_config.EqualsIgnoreHosts(config)); |
} |
+TEST(DnsConfigServicePosixTest, RejectDefaultNameserver) { |
+ struct __res_state res = {}; |
+ res.options = RES_INIT; |
+ const char kDnsrch[] = "chromium.org"; |
+ memcpy(res.defdname, kDnsrch, sizeof(kDnsrch)); |
+ res.dnsrch[0] = res.defdname; |
+ |
+ struct sockaddr_in sa = {}; |
+ sa.sin_family = AF_INET; |
+ sa.sin_port = base::HostToNet16(NS_DEFAULTPORT); |
+ sa.sin_addr.s_addr = INADDR_ANY; |
+ res.nsaddr_list[0] = sa; |
+ res.nscount = 1; |
+ |
+ DnsConfig config; |
+ EXPECT_FALSE(internal::ConvertResStateToDnsConfig(res, &config)); |
+ |
+ sa.sin_addr.s_addr = 0xDEADBEEF; |
+ res.nsaddr_list[0] = sa; |
+ EXPECT_TRUE(internal::ConvertResStateToDnsConfig(res, &config)); |
+} |
+ |
} // namespace |
} // namespace net |