From b6eb2a4c47fcbc4ce7417fc88a4c64fb2b9d25e8 Mon Sep 17 00:00:00 2001 From: erikchen Date: Fri, 11 Mar 2016 17:02:39 -0800 Subject: 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} --- content/browser/loader/async_resource_handler.cc | 2 ++ 1 file changed, 2 insertions(+) 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())); -- cgit v1.1