Need to read the spec properly.
authoroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Dec 2007 01:12:34 +0000 (01:12 +0000)
committeroliver@apple.com <oliver@apple.com@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Mon, 10 Dec 2007 01:12:34 +0000 (01:12 +0000)
Reviewed by Niko

Correction, 'z' and 'Z' are the only commands that cannot have an extended
list of arguments.

git-svn-id: https://svn.webkit.org/repository/webkit/trunk@28575 268f45cc-cd09-0410-ab3c-d52691b4dbfc

LayoutTests/ChangeLog
LayoutTests/svg/dom/path-parser-expected.txt
WebCore/ChangeLog
WebCore/svg/SVGParserUtilities.cpp

index 2ea68ae..97e3fa8 100644 (file)
@@ -2,6 +2,15 @@
 
         Reviewed by Niko.
 
+        Somehow I managed to not check in new expected results
+        in the last patch.
+
+        * svg/dom/path-parser-expected.txt:
+
+2007-12-09  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by Niko.
+
         Prevent unlimited iteration in the case of invalid path data.
         
         The only path commands that can leave numbers trailing the command processing
index 7cd7498..c2eab41 100644 (file)
@@ -200,6 +200,7 @@ CONSOLE MESSAGE: line 97: Error: Problem parsing d="M1,1a9,2 6 1 2 2 2,za9 0 2 8
 CONSOLE MESSAGE: line 97: Error: Problem parsing d=""
 CONSOLE MESSAGE: line 97: Error: Problem parsing d="M"
 CONSOLE MESSAGE: line 97: Error: Problem parsing d="M
+CONSOLE MESSAGE: line 97: Error: Problem parsing d="M1,1Z0"
 This test fuzzes the path parser with semi-random attribute values and dumps the results.
 
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
index 7983bc7..1fbf822 100644 (file)
@@ -2,6 +2,16 @@
 
         Reviewed by Niko.
 
+        Correction, 'z' and 'Z' are the only commands that cannot have an extended
+        list of arguments.
+
+        * svg/SVGParserUtilities.cpp:
+        (WebCore::SVGPathParser::parseSVG):
+
+2007-12-09  Oliver Hunt  <oliver@apple.com>
+
+        Reviewed by Niko.
+
         Prevent unlimited iteration in the case of invalid path data.
         
         The only path commands that can leave numbers trailing the command processing
index 0cfaaf4..8591411 100644 (file)
@@ -513,14 +513,11 @@ bool SVGPathParser::parseSVG(const String& s, bool process)
 
         // Check for remaining coordinates in the current command.
         if ((*ptr == '+' || *ptr == '-' || (*ptr >= '0' && *ptr <= '9')) &&
-            (command != 'z' && command !='a' && command != 'A')) {
+            (command != 'z' && command != 'Z')) {
             if (command == 'M')
                 command = 'L';
             else if (command == 'm')
                 command = 'l';
-            else
-                // Garbage data at the end of the path
-                return false;
         } else
             command = *(ptr++);