ソースを参照

LibWeb/HTML: Check if evaluationStatus has a value before dereferencing

Previously, we would crash if scripting was disabled and a javascript
URL was evaluated.
rmg-x 9 ヶ月 前
コミット
57f82c029c
1 ファイル変更1 行追加1 行削除
  1. 1 1
      Userland/Libraries/LibWeb/HTML/Navigable.cpp

+ 1 - 1
Userland/Libraries/LibWeb/HTML/Navigable.cpp

@@ -1603,7 +1603,7 @@ WebIDL::ExceptionOr<JS::GCPtr<DOM::Document>> Navigable::evaluate_javascript_url
     String result;
 
     // 9. If evaluationStatus is a normal completion, and evaluationStatus.[[Value]] is a String, then set result to evaluationStatus.[[Value]].
-    if (evaluation_status.type() == JS::Completion::Type::Normal && evaluation_status.value()->is_string()) {
+    if (evaluation_status.type() == JS::Completion::Type::Normal && evaluation_status.value().has_value() && evaluation_status.value()->is_string()) {
         result = evaluation_status.value()->as_string().utf8_string();
     } else {
         // 10. Otherwise, return null.