summaryrefslogtreecommitdiff
path: root/chromium/net/dns/record_rdata.cc
diff options
context:
space:
mode:
authorAllan Sandfeld Jensen <allan.jensen@qt.io>2018-12-10 16:19:40 +0100
committerAllan Sandfeld Jensen <allan.jensen@qt.io>2018-12-10 16:01:50 +0000
commit51f6c2793adab2d864b3d2b360000ef8db1d3e92 (patch)
tree835b3b4446b012c75e80177cef9fbe6972cc7dbe /chromium/net/dns/record_rdata.cc
parent6036726eb981b6c4b42047513b9d3f4ac865daac (diff)
downloadqtwebengine-chromium-51f6c2793adab2d864b3d2b360000ef8db1d3e92.tar.gz
BASELINE: Update Chromium to 71.0.3578.93
Change-Id: I6a32086c33670e1b033f8b10e6bf1fd4da1d105d Reviewed-by: Alexandru Croitor <alexandru.croitor@qt.io>
Diffstat (limited to 'chromium/net/dns/record_rdata.cc')
-rw-r--r--chromium/net/dns/record_rdata.cc26
1 files changed, 23 insertions, 3 deletions
diff --git a/chromium/net/dns/record_rdata.cc b/chromium/net/dns/record_rdata.cc
index c8f86048232..86991b2287e 100644
--- a/chromium/net/dns/record_rdata.cc
+++ b/chromium/net/dns/record_rdata.cc
@@ -16,6 +16,26 @@ static const size_t kSrvRecordMinimumSize = 6;
RecordRdata::RecordRdata() = default;
+bool RecordRdata::HasValidSize(const base::StringPiece& data, uint16_t type) {
+ switch (type) {
+ case dns_protocol::kTypeSRV:
+ return data.size() >= kSrvRecordMinimumSize;
+ case dns_protocol::kTypeA:
+ return data.size() == IPAddress::kIPv4AddressSize;
+ case dns_protocol::kTypeAAAA:
+ return data.size() == IPAddress::kIPv6AddressSize;
+ case dns_protocol::kTypeCNAME:
+ case dns_protocol::kTypePTR:
+ case dns_protocol::kTypeTXT:
+ case dns_protocol::kTypeNSEC:
+ case dns_protocol::kTypeOPT:
+ return true;
+ default:
+ VLOG(1) << "Unsupported RDATA type.";
+ return false;
+ }
+}
+
SrvRecordRdata::SrvRecordRdata() : priority_(0), weight_(0), port_(0) {
}
@@ -25,7 +45,7 @@ SrvRecordRdata::~SrvRecordRdata() = default;
std::unique_ptr<SrvRecordRdata> SrvRecordRdata::Create(
const base::StringPiece& data,
const DnsRecordParser& parser) {
- if (data.size() < kSrvRecordMinimumSize)
+ if (!HasValidSize(data, kType))
return std::unique_ptr<SrvRecordRdata>();
std::unique_ptr<SrvRecordRdata> rdata(new SrvRecordRdata);
@@ -64,7 +84,7 @@ ARecordRdata::~ARecordRdata() = default;
std::unique_ptr<ARecordRdata> ARecordRdata::Create(
const base::StringPiece& data,
const DnsRecordParser& parser) {
- if (data.size() != IPAddress::kIPv4AddressSize)
+ if (!HasValidSize(data, kType))
return std::unique_ptr<ARecordRdata>();
std::unique_ptr<ARecordRdata> rdata(new ARecordRdata);
@@ -91,7 +111,7 @@ AAAARecordRdata::~AAAARecordRdata() = default;
std::unique_ptr<AAAARecordRdata> AAAARecordRdata::Create(
const base::StringPiece& data,
const DnsRecordParser& parser) {
- if (data.size() != IPAddress::kIPv6AddressSize)
+ if (!HasValidSize(data, kType))
return std::unique_ptr<AAAARecordRdata>();
std::unique_ptr<AAAARecordRdata> rdata(new AAAARecordRdata);