Fix crash calling GetUserData on a non-user V8 object (fixes issue #3438)

This commit is contained in:
Marshall Greenblatt 2023-01-12 15:55:21 -05:00
parent 4f336c110b
commit 606e5dddf3
1 changed files with 4 additions and 2 deletions

View File

@ -295,7 +295,8 @@ class V8TrackObject : public CefTrackNode {
static V8TrackObject* Unwrap(v8::Local<v8::Context> context,
v8::Local<v8::Object> object) {
v8::Local<v8::Value> value;
if (GetPrivate(context, object, kCefTrackObject, &value)) {
if (GetPrivate(context, object, kCefTrackObject, &value) &&
value->IsExternal()) {
return static_cast<V8TrackObject*>(v8::External::Cast(*value)->Value());
}
@ -351,7 +352,8 @@ class V8TrackArrayBuffer : public CefTrackNode {
static V8TrackArrayBuffer* Unwrap(v8::Local<v8::Context> context,
v8::Local<v8::Object> object) {
v8::Local<v8::Value> value;
if (GetPrivate(context, object, kCefTrackObject, &value)) {
if (GetPrivate(context, object, kCefTrackObject, &value) &&
value->IsExternal()) {
return static_cast<V8TrackArrayBuffer*>(
v8::External::Cast(*value)->Value());
}