Browse Source

fix: confirm a `v8::Value` is a `v8::Object` before casting it (#43602)

fix: confirm a v8::Value is a v8::Object before casting it

Co-authored-by: trop[bot] <37223003+trop[bot]@users.noreply.github.com>
Co-authored-by: Charles Kerr <[email protected]>
trop[bot] 7 months ago
parent
commit
178d937062
1 changed files with 4 additions and 4 deletions
  1. 4 4
      shell/browser/api/message_port.cc

+ 4 - 4
shell/browser/api/message_port.cc

@@ -30,12 +30,12 @@ namespace electron {
 
 namespace {
 
-bool IsValidWrappable(const v8::Local<v8::Value>& obj) {
-  v8::Local<v8::Object> port = v8::Local<v8::Object>::Cast(obj);
-
-  if (!port->IsObject())
+bool IsValidWrappable(const v8::Local<v8::Value>& val) {
+  if (!val->IsObject())
     return false;
 
+  v8::Local<v8::Object> port = val.As<v8::Object>();
+
   if (port->InternalFieldCount() != gin::kNumberOfInternalFields)
     return false;