From 4b369e03b45a4abef975dd19773f6886e6f2c3ae Mon Sep 17 00:00:00 2001 From: Marshall Greenblatt Date: Mon, 5 Nov 2012 22:33:26 +0000 Subject: [PATCH] Fix potential crash if a context with no bindings is released (issue #736). git-svn-id: https://chromiumembedded.googlecode.com/svn/branches/1180@901 5089003a-bbd8-11dd-ad1f-f1f9622dbc98 --- cef1/libcef/v8_impl.cc | 3 +++ cef3/libcef/renderer/v8_impl.cc | 3 +++ 2 files changed, 6 insertions(+) diff --git a/cef1/libcef/v8_impl.cc b/cef1/libcef/v8_impl.cc index 584092420..a18223437 100644 --- a/cef1/libcef/v8_impl.cc +++ b/cef1/libcef/v8_impl.cc @@ -118,6 +118,9 @@ class CefV8TrackManager { v8::Handle object = context->Global(); v8::Handle value = object->GetHiddenValue(context_state_key_); + if (value.IsEmpty()) + return; + scoped_refptr state = static_cast(v8::External::Unwrap(value)); state->Detach(); diff --git a/cef3/libcef/renderer/v8_impl.cc b/cef3/libcef/renderer/v8_impl.cc index 1a13513bd..178ecc94f 100644 --- a/cef3/libcef/renderer/v8_impl.cc +++ b/cef3/libcef/renderer/v8_impl.cc @@ -116,6 +116,9 @@ class CefV8TrackManager { v8::Handle object = context->Global(); v8::Handle value = object->GetHiddenValue(context_state_key_); + if (value.IsEmpty()) + return; + scoped_refptr state = static_cast(v8::External::Unwrap(value)); state->Detach();