From 338fd7a14d3b8bd374a382336df16f9c6792b884 Mon Sep 17 00:00:00 2001 From: Michael Mifsud Date: Thu, 16 Jan 2020 18:51:15 +1000 Subject: [PATCH] Merge pull request from GHSA-f6rp-gv58-9cw3 --- src/custom_importer_bridge.cpp | 15 ++++++++------- 1 file changed, 8 insertions(+), 7 deletions(-) diff --git a/src/custom_importer_bridge.cpp b/src/custom_importer_bridge.cpp index 38d737c26..1ae5ae4d9 100644 --- a/src/custom_importer_bridge.cpp +++ b/src/custom_importer_bridge.cpp @@ -13,11 +13,12 @@ SassImportList CustomImporterBridge::post_process_return_value(v8::LocalLength()); for (size_t i = 0; i < array->Length(); ++i) { - v8::Local value = Nan::Get(array, static_cast(i)).ToLocalChecked(); + v8::Local value; + Nan::MaybeLocal unchecked = Nan::Get(array, static_cast(i)); - if (!value->IsObject()) { - auto entry = sass_make_import_entry(0, 0, 0); - sass_import_set_error(entry, "returned array must only contain object literals", -1, -1); + if (!unchecked.ToLocal(&value) || !value->IsObject()) { + imports[i] = sass_make_import_entry(0, 0, 0); + sass_import_set_error(imports[i], "returned array must only contain object literals", -1, -1); continue; } @@ -71,9 +72,9 @@ Sass_Import* CustomImporterBridge::check_returned_string(Nan::MaybeLocal& object) const { - auto returned_file = Nan::Get(object, Nan::New("file").ToLocalChecked()); - auto returned_contents = Nan::Get(object, Nan::New("contents").ToLocalChecked()).ToLocalChecked(); - auto returned_map = Nan::Get(object, Nan::New("map").ToLocalChecked()); + Nan::MaybeLocal returned_file = Nan::Get(object, Nan::New("file").ToLocalChecked()); + Nan::MaybeLocal returned_contents = Nan::Get(object, Nan::New("contents").ToLocalChecked()); + Nan::MaybeLocal returned_map = Nan::Get(object, Nan::New("map").ToLocalChecked()); Sass_Import *err; if ((err = check_returned_string(returned_file, "returned value of `file` must be a string")))