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, static V8TrackObject* Unwrap(v8::Local<v8::Context> context,
v8::Local<v8::Object> object) { v8::Local<v8::Object> object) {
v8::Local<v8::Value> value; 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()); 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, static V8TrackArrayBuffer* Unwrap(v8::Local<v8::Context> context,
v8::Local<v8::Object> object) { v8::Local<v8::Object> object) {
v8::Local<v8::Value> value; v8::Local<v8::Value> value;
if (GetPrivate(context, object, kCefTrackObject, &value)) { if (GetPrivate(context, object, kCefTrackObject, &value) &&
value->IsExternal()) {
return static_cast<V8TrackArrayBuffer*>( return static_cast<V8TrackArrayBuffer*>(
v8::External::Cast(*value)->Value()); v8::External::Cast(*value)->Value());
} }