summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorerikchen <erikchen@chromium.org>2016-03-11 17:02:39 -0800
committerCommit bot <commit-bot@chromium.org>2016-03-12 01:04:32 +0000
commitb6eb2a4c47fcbc4ce7417fc88a4c64fb2b9d25e8 (patch)
tree93124aacc7e419e9e7445e9cc9038989eb7a5256
parent24e0d5ecba7a1c43f87015254142666f0d6db1c2 (diff)
downloadchromium_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.cc2
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()));