summaryrefslogtreecommitdiffstats
path: root/net
diff options
context:
space:
mode:
authorrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-20 17:19:32 +0000
committerrvargas@google.com <rvargas@google.com@0039d316-1c4b-4281-b951-d872f2087c98>2011-10-20 17:19:32 +0000
commit4e4e45cf87e61953f37d086a6ac70e1670c40f35 (patch)
tree60df3e39c67f597d745401604b5c887412e6df3d /net
parent419b058386d043e5eb974874540da567223c2ccb (diff)
downloadchromium_src-4e4e45cf87e61953f37d086a6ac70e1670c40f35.zip
chromium_src-4e4e45cf87e61953f37d086a6ac70e1670c40f35.tar.gz
chromium_src-4e4e45cf87e61953f37d086a6ac70e1670c40f35.tar.bz2
Disk cache: Fix the sanity check for entries with keys of 16KB.
BUG=100800 TEST=net_unittests Review URL: http://codereview.chromium.org/8347014 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@106515 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'net')
-rw-r--r--net/disk_cache/entry_impl.cc4
-rw-r--r--net/disk_cache/entry_unittest.cc8
2 files changed, 10 insertions, 2 deletions
diff --git a/net/disk_cache/entry_impl.cc b/net/disk_cache/entry_impl.cc
index 7bcccf4..e830fa0 100644
--- a/net/disk_cache/entry_impl.cc
+++ b/net/disk_cache/entry_impl.cc
@@ -603,8 +603,8 @@ bool EntryImpl::SanityCheck() {
return false;
if (key_addr.is_initialized() &&
- ((stored->key_len <= kMaxBlockSize && key_addr.is_separate_file()) ||
- (stored->key_len > kMaxBlockSize && key_addr.is_block_file())))
+ ((stored->key_len < kMaxBlockSize && key_addr.is_separate_file()) ||
+ (stored->key_len >= kMaxBlockSize && key_addr.is_block_file())))
return false;
int num_blocks = NumBlocksForEntry(stored->key_len);
diff --git a/net/disk_cache/entry_unittest.cc b/net/disk_cache/entry_unittest.cc
index 1374101..a763dbb 100644
--- a/net/disk_cache/entry_unittest.cc
+++ b/net/disk_cache/entry_unittest.cc
@@ -531,6 +531,14 @@ void DiskCacheEntryTest::GetKey() {
ASSERT_EQ(net::OK, CreateEntry(key, &entry));
EXPECT_TRUE(key == entry->GetKey()) << "long key";
entry->Close();
+
+ CacheTestFillBuffer(key_buffer, 0x4000, true);
+ key_buffer[0x4000] = '\0';
+
+ key = key_buffer;
+ ASSERT_EQ(net::OK, CreateEntry(key, &entry));
+ EXPECT_TRUE(key == entry->GetKey()) << "16KB key";
+ entry->Close();
}
TEST_F(DiskCacheEntryTest, GetKey) {