summaryrefslogtreecommitdiffstats
path: root/content/browser/ppapi_plugin_process_host.cc
diff options
context:
space:
mode:
authorrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-04 04:06:59 +0000
committerrobertshield@chromium.org <robertshield@chromium.org@0039d316-1c4b-4281-b951-d872f2087c98>2013-02-04 04:06:59 +0000
commitbad22afa2d2ba6349dc0117540d3cf16ed14efa9 (patch)
tree02757bbf75ac0eab6cdbe3c642381893d87135ad /content/browser/ppapi_plugin_process_host.cc
parent15544bccf37d98856f241067784fbeb7095b13ee (diff)
downloadchromium_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.cc6
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);