Title: [275324] trunk
Revision
275324
Author
[email protected]
Date
2021-03-31 17:29:13 -0700 (Wed, 31 Mar 2021)

Log Message

Placate exception check validation below convertVariadicArguments().
https://bugs.webkit.org/show_bug.cgi?id=224027
rdar://68912995

Reviewed by Saam Barati.

Source/WebCore:

Test: js/dom/missing-exception-check-in-convertVariadicArguments.html

* bindings/js/JSDOMConvertVariadic.h:
(WebCore::convertVariadicArguments):

LayoutTests:

* js/dom/missing-exception-check-in-convertVariadicArguments-expected.txt: Added.
* js/dom/missing-exception-check-in-convertVariadicArguments.html: Added.

Modified Paths

Added Paths

Diff

Modified: trunk/LayoutTests/ChangeLog (275323 => 275324)


--- trunk/LayoutTests/ChangeLog	2021-04-01 00:18:59 UTC (rev 275323)
+++ trunk/LayoutTests/ChangeLog	2021-04-01 00:29:13 UTC (rev 275324)
@@ -1,3 +1,14 @@
+2021-03-31  Mark Lam  <[email protected]>
+
+        Placate exception check validation below convertVariadicArguments().
+        https://bugs.webkit.org/show_bug.cgi?id=224027
+        rdar://68912995
+
+        Reviewed by Saam Barati.
+
+        * js/dom/missing-exception-check-in-convertVariadicArguments-expected.txt: Added.
+        * js/dom/missing-exception-check-in-convertVariadicArguments.html: Added.
+
 2021-03-31  Ryan Haddad  <[email protected]>
 
         REGRESSION (Metal ANGLE): [Catalina] 6 consistent WebGL failures / timeouts

Added: trunk/LayoutTests/js/dom/missing-exception-check-in-convertVariadicArguments-expected.txt (0 => 275324)


--- trunk/LayoutTests/js/dom/missing-exception-check-in-convertVariadicArguments-expected.txt	                        (rev 0)
+++ trunk/LayoutTests/js/dom/missing-exception-check-in-convertVariadicArguments-expected.txt	2021-04-01 00:29:13 UTC (rev 275324)
@@ -0,0 +1,4 @@
+PASS successfullyParsed is true
+
+TEST COMPLETE
+

Added: trunk/LayoutTests/js/dom/missing-exception-check-in-convertVariadicArguments.html (0 => 275324)


--- trunk/LayoutTests/js/dom/missing-exception-check-in-convertVariadicArguments.html	                        (rev 0)
+++ trunk/LayoutTests/js/dom/missing-exception-check-in-convertVariadicArguments.html	2021-04-01 00:29:13 UTC (rev 275324)
@@ -0,0 +1,14 @@
+<!DOCTYPE html><!-- webkit-test-runner [ jscOptions=--validateExceptionChecks=true ] -->
+<html>
+<head>
+<script src=""
+</head>
+<body>
+<script>
+  setTimeout(undefined, undefined, undefined, undefined);
+  setInterval(undefined, undefined, undefined, undefined);
+</script>
+<script src=""
+</body>
+</html>
+

Modified: trunk/Source/WebCore/ChangeLog (275323 => 275324)


--- trunk/Source/WebCore/ChangeLog	2021-04-01 00:18:59 UTC (rev 275323)
+++ trunk/Source/WebCore/ChangeLog	2021-04-01 00:29:13 UTC (rev 275324)
@@ -1,3 +1,16 @@
+2021-03-31  Mark Lam  <[email protected]>
+
+        Placate exception check validation below convertVariadicArguments().
+        https://bugs.webkit.org/show_bug.cgi?id=224027
+        rdar://68912995
+
+        Reviewed by Saam Barati.
+
+        Test: js/dom/missing-exception-check-in-convertVariadicArguments.html
+
+        * bindings/js/JSDOMConvertVariadic.h:
+        (WebCore::convertVariadicArguments):
+
 2021-03-31  Venky Dass  <[email protected]>
 
         Null pointer access crash in WebCore::makeBoundaryPoint(..)

Modified: trunk/Source/WebCore/bindings/js/JSDOMConvertVariadic.h (275323 => 275324)


--- trunk/Source/WebCore/bindings/js/JSDOMConvertVariadic.h	2021-04-01 00:18:59 UTC (rev 275323)
+++ trunk/Source/WebCore/bindings/js/JSDOMConvertVariadic.h	2021-04-01 00:29:13 UTC (rev 275324)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2016 Apple Inc. All rights reserved.
+ * Copyright (C) 2016-2021 Apple Inc. All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that the following conditions
@@ -48,6 +48,9 @@
 
 template<typename IDLType> Vector<typename VariadicConverter<IDLType>::Item> convertVariadicArguments(JSC::JSGlobalObject& lexicalGlobalObject, JSC::CallFrame& callFrame, size_t startIndex)
 {
+    auto& vm = JSC::getVM(&lexicalGlobalObject);
+    auto scope = DECLARE_THROW_SCOPE(vm);
+
     size_t length = callFrame.argumentCount();
     if (startIndex >= length)
         return { };
@@ -57,6 +60,7 @@
 
     for (size_t i = startIndex; i < length; ++i) {
         auto value = VariadicConverter<IDLType>::convert(lexicalGlobalObject, callFrame.uncheckedArgument(i));
+        EXCEPTION_ASSERT_UNUSED(scope, !!scope.exception() == !value);
         if (!value)
             return { };
         result.uncheckedAppend(WTFMove(*value));
_______________________________________________
webkit-changes mailing list
[email protected]
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to