From 52c7571772423908a3c672a55885c1595a45c4ae Mon Sep 17 00:00:00 2001 From: "rvargas@chromium.org" Date: Fri, 16 Dec 2011 01:19:19 +0000 Subject: Disk Cache: Discard entries from ReadData if something is clearly wrong. BUG=107457 TEST=net_unittests Review URL: http://codereview.chromium.org/8913013 git-svn-id: svn://svn.chromium.org/chrome/trunk/src@114740 0039d316-1c4b-4281-b951-d872f2087c98 --- net/disk_cache/entry_impl.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'net/disk_cache/entry_impl.cc') diff --git a/net/disk_cache/entry_impl.cc b/net/disk_cache/entry_impl.cc index 7e13029..b0226a7 100644 --- a/net/disk_cache/entry_impl.cc +++ b/net/disk_cache/entry_impl.cc @@ -974,12 +974,16 @@ int EntryImpl::InternalReadData(int index, int offset, net::IOBuffer* buf, address.set_value(entry_.Data()->data_addr[index]); DCHECK(address.is_initialized()); - if (!address.is_initialized()) + if (!address.is_initialized()) { + DoomImpl(); return net::ERR_FAILED; + } File* file = GetBackingFile(address, index); - if (!file) + if (!file) { + DoomImpl(); return net::ERR_FAILED; + } size_t file_offset = offset; if (address.is_block_file()) { @@ -1000,6 +1004,7 @@ int EntryImpl::InternalReadData(int index, int offset, net::IOBuffer* buf, if (!file->Read(buf->data(), buf_len, file_offset, io_callback, &completed)) { if (io_callback) io_callback->Discard(); + DoomImpl(); return net::ERR_FAILED; } -- cgit v1.1