diff options
author | erikchen <erikchen@chromium.org> | 2016-03-11 17:02:39 -0800 |
---|---|---|
committer | Commit bot <commit-bot@chromium.org> | 2016-03-12 01:04:32 +0000 |
commit | b6eb2a4c47fcbc4ce7417fc88a4c64fb2b9d25e8 (patch) | |
tree | 93124aacc7e419e9e7445e9cc9038989eb7a5256 | |
parent | 24e0d5ecba7a1c43f87015254142666f0d6db1c2 (diff) | |
download | chromium_src-b6eb2a4c47fcbc4ce7417fc88a4c64fb2b9d25e8.zip chromium_src-b6eb2a4c47fcbc4ce7417fc88a4c64fb2b9d25e8.tar.gz chromium_src-b6eb2a4c47fcbc4ce7417fc88a4c64fb2b9d25e8.tar.bz2 |
Gracefully handle base::SharedMemory::DuplicateHandle failure.
Failure to do so causes an assertion to be hit in the renderer.
BUG=592872
Review URL: https://codereview.chromium.org/1790743002
Cr-Commit-Position: refs/heads/master@{#380815}
-rw-r--r-- | content/browser/loader/async_resource_handler.cc | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/content/browser/loader/async_resource_handler.cc b/content/browser/loader/async_resource_handler.cc index 8f02d3f..599767b 100644 --- a/content/browser/loader/async_resource_handler.cc +++ b/content/browser/loader/async_resource_handler.cc @@ -450,6 +450,8 @@ bool AsyncResourceHandler::OnReadCompleted(int bytes_read, bool* defer) { if (!sent_data_buffer_msg_) { base::SharedMemoryHandle handle = base::SharedMemory::DuplicateHandle( buffer_->GetSharedMemory().handle()); + if (!base::SharedMemory::IsHandleValid(handle)) + return false; filter->Send(new ResourceMsg_SetDataBuffer( GetRequestID(), handle, buffer_->GetSharedMemory().mapped_size(), filter->peer_pid())); |