summaryrefslogtreecommitdiffstats
path: root/net/socket
diff options
context:
space:
mode:
authorwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 19:50:21 +0000
committerwtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2014-02-27 19:50:21 +0000
commita1807a5b53c1551fe4a82beced80af7d27a00adf (patch)
tree3e5c72ae25aab9638c6ced4f68a3fb18f08fee38 /net/socket
parentdf55d2594e42d99b59bb75983ad72d0fca54c48f (diff)
downloadchromium_src-a1807a5b53c1551fe4a82beced80af7d27a00adf.zip
chromium_src-a1807a5b53c1551fe4a82beced80af7d27a00adf.tar.gz
chromium_src-a1807a5b53c1551fe4a82beced80af7d27a00adf.tar.bz2
StaticSocketDataProvider should not read beyond the end of the reads_ or
writes_ array, even in Release build. R=eroman@chromium.org,jgraettinger@chromium.org BUG=343416 TEST=none Review URL: https://codereview.chromium.org/176823010 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@253908 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net/socket')
-rw-r--r--net/socket/socket_test_util.cc17
1 files changed, 11 insertions, 6 deletions
diff --git a/net/socket/socket_test_util.cc b/net/socket/socket_test_util.cc
index 895579b..bed8a0c 100644
--- a/net/socket/socket_test_util.cc
+++ b/net/socket/socket_test_util.cc
@@ -169,27 +169,27 @@ StaticSocketDataProvider::StaticSocketDataProvider(MockRead* reads,
StaticSocketDataProvider::~StaticSocketDataProvider() {}
const MockRead& StaticSocketDataProvider::PeekRead() const {
- DCHECK(!at_read_eof());
+ CHECK(!at_read_eof());
return reads_[read_index_];
}
const MockWrite& StaticSocketDataProvider::PeekWrite() const {
- DCHECK(!at_write_eof());
+ CHECK(!at_write_eof());
return writes_[write_index_];
}
const MockRead& StaticSocketDataProvider::PeekRead(size_t index) const {
- DCHECK_LT(index, read_count_);
+ CHECK_LT(index, read_count_);
return reads_[index];
}
const MockWrite& StaticSocketDataProvider::PeekWrite(size_t index) const {
- DCHECK_LT(index, write_count_);
+ CHECK_LT(index, write_count_);
return writes_[index];
}
MockRead StaticSocketDataProvider::GetNextRead() {
- DCHECK(!at_read_eof());
+ CHECK(!at_read_eof());
reads_[read_index_].time_stamp = base::Time::Now();
return reads_[read_index_++];
}
@@ -199,7 +199,12 @@ MockWriteResult StaticSocketDataProvider::OnWrite(const std::string& data) {
// Not using mock writes; succeed synchronously.
return MockWriteResult(SYNCHRONOUS, data.length());
}
- DCHECK(!at_write_eof());
+ EXPECT_FALSE(at_write_eof());
+ if (at_write_eof()) {
+ // Show what the extra write actually consists of.
+ EXPECT_EQ("<unexpected write>", data);
+ return MockWriteResult(SYNCHRONOUS, ERR_UNEXPECTED);
+ }
// Check that what we are writing matches the expectation.
// Then give the mocked return value.