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

fix: confirm a v8::Value is a v8::Object before casting it
This commit is contained in:
Charles Kerr 2024-09-06 11:20:04 -05:00 коммит произвёл GitHub
Родитель cc5aa65cb4
Коммит fe0d4274e2
Не найден ключ, соответствующий данной подписи
Идентификатор ключа GPG: B5690EEEBB952194
1 изменённых файлов: 4 добавлений и 4 удалений

Просмотреть файл

@ -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;