diff options
author | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-04 04:06:59 +0000 |
---|---|---|
committer | robertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98> | 2013-02-04 04:06:59 +0000 |
commit | bad22afa2d2ba6349dc0117540d3cf16ed14efa9 (patch) | |
tree | 02757bbf75ac0eab6cdbe3c642381893d87135ad /content/browser/ppapi_plugin_process_host.cc | |
parent | 15544bccf37d98856f241067784fbeb7095b13ee (diff) | |
download | chromium_src-bad22afa2d2ba6349dc0117540d3cf16ed14efa9.zip chromium_src-bad22afa2d2ba6349dc0117540d3cf16ed14efa9.tar.gz chromium_src-bad22afa2d2ba6349dc0117540d3cf16ed14efa9.tar.bz2 |
Prevent calling GetProcId with a null process handle in PpapiPluginProcessHost::RequestPluginChannel
BUG=170737
TEST=Debug Chrome doesn't crash immediately.
Review URL: https://chromiumcodereview.appspot.com/12087104
git-svn-id: svn://svn.chromium.org/chrome/trunk/src@180344 0039d316-1c4b-4281-b951-d872f2087c98
Diffstat (limited to 'content/browser/ppapi_plugin_process_host.cc')
-rw-r--r-- | content/browser/ppapi_plugin_process_host.cc | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/content/browser/ppapi_plugin_process_host.cc b/content/browser/ppapi_plugin_process_host.cc index e279b99..3d07a60 100644 --- a/content/browser/ppapi_plugin_process_host.cc +++ b/content/browser/ppapi_plugin_process_host.cc @@ -298,11 +298,13 @@ void PpapiPluginProcessHost::RequestPluginChannel(Client* client) { int renderer_child_id; client->GetPpapiChannelInfo(&process_handle, &renderer_child_id); + base::ProcessId process_id = (process_handle == base::kNullProcessHandle) ? + 0 : base::GetProcId(process_handle); + // We can't send any sync messages from the browser because it might lead to // a hang. See the similar code in PluginProcessHost for more description. PpapiMsg_CreateChannel* msg = new PpapiMsg_CreateChannel( - base::GetProcId(process_handle), renderer_child_id, - client->OffTheRecord()); + process_id, renderer_child_id, client->OffTheRecord()); msg->set_unblock(true); if (Send(msg)) { sent_requests_.push(client); |