Title: [197185] trunk/Source/_javascript_Core
Revision
197185
Author
oli...@apple.com
Date
2016-02-26 11:18:06 -0800 (Fri, 26 Feb 2016)

Log Message

Make testRegExp not crash when given an invalid regexp
https://bugs.webkit.org/show_bug.cgi?id=154732

Reviewed by Mark Lam.

* testRegExp.cpp:
(parseRegExpLine):

Modified Paths

Diff

Modified: trunk/Source/_javascript_Core/ChangeLog (197184 => 197185)


--- trunk/Source/_javascript_Core/ChangeLog	2016-02-26 19:09:24 UTC (rev 197184)
+++ trunk/Source/_javascript_Core/ChangeLog	2016-02-26 19:18:06 UTC (rev 197185)
@@ -1,3 +1,13 @@
+2016-02-26  Oliver Hunt  <oli...@apple.com>
+
+        Make testRegExp not crash when given an invalid regexp
+        https://bugs.webkit.org/show_bug.cgi?id=154732
+
+        Reviewed by Mark Lam.
+
+        * testRegExp.cpp:
+        (parseRegExpLine):
+
 2016-02-26  Benjamin Poulain  <benja...@webkit.org>
 
         [JSC] Add the test for r197155

Modified: trunk/Source/_javascript_Core/testRegExp.cpp (197184 => 197185)


--- trunk/Source/_javascript_Core/testRegExp.cpp	2016-02-26 19:09:24 UTC (rev 197184)
+++ trunk/Source/_javascript_Core/testRegExp.cpp	2016-02-26 19:18:06 UTC (rev 197185)
@@ -339,7 +339,10 @@
 
     ++i;
 
-    return RegExp::create(vm, pattern.toString(), regExpFlags(line + i));
+    RegExp* r = RegExp::create(vm, pattern.toString(), regExpFlags(line + i));
+    if (r->isValid())
+        return r;
+    return nullptr;
 }
 
 static RegExpTest* parseTestLine(char* line, int lineLength)
@@ -465,6 +468,14 @@
                 
                 if (regExpTest)
                     delete regExpTest;
+            } else if (linePtr[0] == '-') {
+                tests++;
+                regexp = 0; // Reset the live regexp to avoid confusing other subsequent tests
+                bool successfullyParsed = parseRegExpLine(vm, linePtr + 1, lineLength - 1);
+                if (successfullyParsed) {
+                    failures++;
+                    fprintf(stderr, "Failure on line %u. '%s' is not a valid regexp\n", lineNumber, linePtr + 1);
+                }
             }
         }
         

Modified: trunk/Source/_javascript_Core/tests/regexp/RegExpTest.data (197184 => 197185)


--- trunk/Source/_javascript_Core/tests/regexp/RegExpTest.data	2016-02-26 19:09:24 UTC (rev 197184)
+++ trunk/Source/_javascript_Core/tests/regexp/RegExpTest.data	2016-02-26 19:18:06 UTC (rev 197185)
@@ -1038,3 +1038,8 @@
  "ca\nb\n", 0, -1, (-1, -1)
  "b\nca\n", 0, -1, (-1, -1)
  "b\nca", 0, -1, (-1, -1)
+
+-/asd
+-??
+-*+
+
_______________________________________________
webkit-changes mailing list
webkit-changes@lists.webkit.org
https://lists.webkit.org/mailman/listinfo/webkit-changes

Reply via email to