Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(917)

Unified Diff: net/dns/dns_response.cc

Issue 15326002: Fix bug in InitParseWithoutQuestion (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Created 7 years, 7 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
« no previous file with comments | « no previous file | net/dns/dns_response_unittest.cc » ('j') | no next file with comments »
Expand Comments ('e') | Collapse Comments ('c') | Show Comments Hide Comments ('s')
Index: net/dns/dns_response.cc
diff --git a/net/dns/dns_response.cc b/net/dns/dns_response.cc
index 4a3371c2adb1b42b267f7a1c161ca58f191f94f4..38f93c10659d07879467ff9dec0515667e0a63dc 100644
--- a/net/dns/dns_response.cc
+++ b/net/dns/dns_response.cc
@@ -162,6 +162,7 @@ DnsResponse::~DnsResponse() {
}
bool DnsResponse::InitParse(int nbytes, const DnsQuery& query) {
+ DCHECK_GE(nbytes, 0);
// Response includes query, it should be at least that size.
if (nbytes < query.io_buffer()->size() || nbytes >= io_buffer_->size())
return false;
@@ -190,10 +191,13 @@ bool DnsResponse::InitParse(int nbytes, const DnsQuery& query) {
}
bool DnsResponse::InitParseWithoutQuery(int nbytes) {
- if (nbytes >= io_buffer_->size())
- return false;
+ DCHECK_GE(nbytes, 0);
size_t hdr_size = sizeof(dns_protocol::Header);
+
+ if (nbytes < static_cast<int>(hdr_size) || nbytes >= io_buffer_->size())
+ return false;
+
parser_ = DnsRecordParser(
io_buffer_->data(), nbytes, hdr_size);
« no previous file with comments | « no previous file | net/dns/dns_response_unittest.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698