diff options
-rw-r--r-- | net/disk_cache/entry_impl.cc | 4 | ||||
-rw-r--r-- | net/disk_cache/entry_unittest.cc | 8 |
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) { |