summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-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) {