diff options
author | wtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-27 19:50:21 +0000 |
---|---|---|
committer | wtc@chromium.org <wtc@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2014-02-27 19:50:21 +0000 |
commit | a1807a5b53c1551fe4a82beced80af7d27a00adf (patch) | |
tree | 3e5c72ae25aab9638c6ced4f68a3fb18f08fee38 /net/socket | |
parent | df55d2594e42d99b59bb75983ad72d0fca54c48f (diff) | |
download | chromium_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.cc | 17 |
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. |