2010-12-30 Justin Schuh <jschuh@chromium.org>
authorjschuh@chromium.org <jschuh@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Dec 2010 08:12:40 +0000 (08:12 +0000)
committerjschuh@chromium.org <jschuh@chromium.org@268f45cc-cd09-0410-ab3c-d52691b4dbfc>
Thu, 30 Dec 2010 08:12:40 +0000 (08:12 +0000)
        Reviewed by Dirk Schulze.

        Prevent stringToLengthType() from skipping past end-of-string on invalid length unit.
        https://bugs.webkit.org/show_bug.cgi?id=51692

        * svg/SVGLength.cpp:
        (WebCore::stringToLengthType):
        (WebCore::SVGLength::setValueAsString):
2010-12-30  Justin Schuh  <jschuh@chromium.org>

        Reviewed by Dirk Schulze.

        Adding long float string to improve test coverage.
        https://bugs.webkit.org/show_bug.cgi?id=51692

        * svg/dom/length-list-parser.html:
        * svg/dom/length-list-parser-expected.txt:

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

LayoutTests/ChangeLog
LayoutTests/svg/dom/length-list-parser-expected.txt
LayoutTests/svg/dom/length-list-parser.html
WebCore/ChangeLog
WebCore/svg/SVGLength.cpp

index f6a1de7..92cebf2 100644 (file)
@@ -1,3 +1,13 @@
+2010-12-30  Justin Schuh  <jschuh@chromium.org>
+
+        Reviewed by Dirk Schulze.
+
+        Adding long float string to improve test coverage.
+        https://bugs.webkit.org/show_bug.cgi?id=51692
+
+        * svg/dom/length-list-parser.html:
+        * svg/dom/length-list-parser-expected.txt:
+
 2010-12-30  Abhishek Arya  <inferno@chromium.org>
 
         Reviewed by Eric Seidel.
index c804214..32aafbd 100644 (file)
@@ -3,69 +3,88 @@ This test fuzzes the length list parser with semi-random attribute values and du
 On success, you will see a series of "PASS" messages, followed by "TEST COMPLETE".
 
 
-Parsed as 3 length(s) [ 4, 0.252, 9 ]: 4       ,.252   +9
-Parsed as 3 length(s) [ 787, 3.01, 0 ]: 787 3.01, .0,e
-Parsed as 3 length(s) [ 4, 45, -685 ]: 4,45    -685 +  26.e   +e4-
-Parsed as 2 length(s) [ 823, 1 ]: 823,1
-Parsed as 3 length(s) [ 42, 9, 624 ]: 42       9 624   0. 9 e47e52147433       7       
-Parsed as 1 length(s) [ 3 ]: 3 60746- 495      60.49 -+ 3194 .192,69-- 
-Parsed as 1 length(s) [ 54 ]: 54       858+0.7e4580611 975     .33e,5  -
-Parsed as 1 length(s) [ 0 ]: 0e1 e,9 3 589     -46+58  -5      1e68
-Parsed as 1 length(s) [ 525 ]: 525 ,.+ 252020-
-Parsed as 2 length(s) [ 9036, 6 ]: 9036 6
-Parsed as 2 length(s) [ -2, 7 ]: -2 7 2+8162 -0 9
-Parsed as 1 length(s) [ 2 ]: 2 8+0,684 0       e 9++   3+6e,-.++979,63
-Parsed as 3 length(s) [ 787, 3.01, 0 ]: 787 3.01, .0,e
-Parsed as 3 length(s) [ 4, 45, -685 ]: 4,45    -685 +  26.e   +e4-
-Parsed as 2 length(s) [ 823, 1 ]: 823,1
-Parsed as 3 length(s) [ 42, 9, 624 ]: 42       9 624   0. 9 e47e52147433       7       
-Parsed as 1 length(s) [ 3 ]: 3 60746- 495      60.49 -+ 3194 .192,69-- 
-Parsed as 1 length(s) [ 54 ]: 54       858+0.7e4580611 975     .33e,5  -
-Parsed as 1 length(s) [ 0 ]: 0e1 e,9 3 589     -46+58  -5      1e68
-Parsed as 1 length(s) [ 525 ]: 525 ,.+ 252020-
-Parsed as 2 length(s) [ 9036, 6 ]: 9036 6
-Parsed as 2 length(s) [ -2, 7 ]: -2 7 2+8162 -0 9
-Parsed as 1 length(s) [ 2 ]: 2 8+0,684 0       e 9++   3+6e,-.++979,63
-Parsed as 3 length(s) [ 787, 3.01, 0 ]: 787 3.01, .0,e
-Parsed as 3 length(s) [ 4, 45, -685 ]: 4,45    -685 +  26.e   +e4-
-Parsed as 2 length(s) [ 823, 1 ]: 823,1
-Parsed as 3 length(s) [ 42, 9, 624 ]: 42       9 624   0. 9 e47e52147433       7       
-Parsed as 1 length(s) [ 3 ]: 3 60746- 495      60.49 -+ 3194 .192,69-- 
-Parsed as 1 length(s) [ 54 ]: 54       858+0.7e4580611 975     .33e,5  -
-Parsed as 1 length(s) [ 0 ]: 0e1 e,9 3 589     -46+58  -5      1e68
-Parsed as 1 length(s) [ 525 ]: 525 ,.+ 252020-
-Parsed as 2 length(s) [ 9036, 6 ]: 9036 6
-Parsed as 2 length(s) [ -2, 7 ]: -2 7 2+8162 -0 9
-Parsed as 1 length(s) [ 2 ]: 2 8+0,684 0       e 9++   3+6e,-.++979,63
-Parsed as 3 length(s) [ 787, 3.01, 0 ]: 787 3.01, .0,e
-Parsed as 3 length(s) [ 4, 45, -685 ]: 4,45    -685 +  26.e   +e4-
-Parsed as 2 length(s) [ 823, 1 ]: 823,1
-Parsed as 3 length(s) [ 42, 9, 624 ]: 42       9 624   0. 9 e47e52147433       7       
-Parsed as 1 length(s) [ 3 ]: 3 60746- 495      60.49 -+ 3194 .192,69-- 
-Parsed as 1 length(s) [ 54 ]: 54       858+0.7e4580611 975     .33e,5  -
-Parsed as 1 length(s) [ 0 ]: 0e1 e,9 3 589     -46+58  -5      1e68
-Parsed as 1 length(s) [ 525 ]: 525 ,.+ 252020-
-Parsed as 2 length(s) [ 9036, 6 ]: 9036 6
-Parsed as 2 length(s) [ -2, 7 ]: -2 7 2+8162 -0 9
-Parsed as 1 length(s) [ 2 ]: 2 8+0,684 0       e 9++   3+6e,-.++979,63
-Parsed as 3 length(s) [ 787, 3.01, 0 ]: 787 3.01, .0,e
-Parsed as 3 length(s) [ 4, 45, -685 ]: 4,45    -685 +  26.e   +e4-
-Parsed as 2 length(s) [ 823, 1 ]: 823,1
-Parsed as 3 length(s) [ 42, 9, 624 ]: 42       9 624   0. 9 e47e52147433       7       
-Parsed as 1 length(s) [ 3 ]: 3 60746- 495      60.49 -+ 3194 .192,69-- 
-Parsed as 1 length(s) [ 54 ]: 54       858+0.7e4580611 975     .33e,5  -
-Parsed as 1 length(s) [ 0 ]: 0e1 e,9 3 589     -46+58  -5      1e68
-Parsed as 1 length(s) [ 525 ]: 525 ,.+ 252020-
-Parsed as 2 length(s) [ 9036, 6 ]: 9036 6
-Parsed as 2 length(s) [ -2, 7 ]: -2 7 2+8162 -0 9
-Parsed as 1 length(s) [ 2 ]: 2 8+0,684 0       e 9++   3+6e,-.++979,63
-Parsed as 3 length(s) [ 787, 3.01, 0 ]: 787 3.01, .0,e
-Parsed as 3 length(s) [ 4, 45, -685 ]: 4,45    -685 +  26.e   +e4-
-Parsed as 2 length(s) [ 823, 1 ]: 823,1
-Parsed as 3 length(s) [ 42, 9, 624 ]: 42       9 624   0. 9 e47e52147433       7       
-Parsed as 1 length(s) [ 3 ]: 3 60746- 495      60.49 -+ 3194 .192,69-- 
-Parsed as 1 length(s) [ 54 ]: 54       858+0.7e4580611 975     .33e,5  -
-Parsed as 1 length(s) [ 0 ]: 0e1 e,9 3 589     -46+58  -5      1e68
+Parsed as 1 length(s) [ 8.847 ]: 8.847
+Parsed as 1 length(s) [ 8.62569e+06 ]: 8625686 3.0-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001, 90,e4997..,782-4326e. -0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000013e,+e9     e 4829.,063721-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e6 072
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
+Parsed as 1 length(s) [ 1 ]: 1,.,+.833+.004 2-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000012-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001+.9-   8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001.7980-555-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-198        50
+Parsed as 1 length(s) [ 564281 ]: 564281 0ee51+ e      378584833       ,.141   e8-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-53. 88530-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010 8.-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000018.847e28886-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014e85 .-1-
+Parsed as 3 length(s) [ -0, 9, 367 ]: -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001608 9 367 ..81e9e539        e 4 e-17 6911-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e88. 965---39 0
+Parsed as 4 length(s) [ 4, -0, 35, 684 ]: 04,-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001993,35       +684 +  159e   +.3-e0+,812-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001728-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000014+,--1-26e666460-79.5-0.0000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000169603-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000010641,,572-960   1-9 289 
+Parsed as 1 length(s) [ 61822 ]: 61822,15-00.166.7 
+Parsed as 2 length(s) [ 2, 0.5 ]: 2    .5,658-7 e ,8477553
+Parsed as 3 length(s) [ 8, 2, 589 ]: 8 2 589   -45e58 -4       -0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001e58-++689.-98-,42 94564.,967-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000011+ ,9+6-  .765+-87 e. 68  9452182-0.000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000016.. 1       +
 PASS successfullyParsed is true
 
 TEST COMPLETE
index e9b53b3..6fb8523 100644 (file)
@@ -12,6 +12,8 @@
     
     var characters = [
         "0",
+        // Long numeric string to force crossing page boundaries.
+        "-0.00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001",
         "1",
         "2",
         "3",
@@ -56,7 +58,7 @@
         // Random assortments of valid characters
         for (var i = 0; i < 250; i++) { //>
             var lengthList = "";
-            var count = Math.scriptedRandomInt(40);
+            var count = Math.scriptedRandomInt(100);
             for (var j = 0; j < count; j++) { //>
                 lengthList += characters[Math.scriptedRandomInt(characters.length)];
             }
index 8279906..7266716 100644 (file)
@@ -1,3 +1,14 @@
+2010-12-30  Justin Schuh  <jschuh@chromium.org>
+
+        Reviewed by Dirk Schulze.
+
+        Prevent stringToLengthType() from skipping past end-of-string on invalid length unit. 
+        https://bugs.webkit.org/show_bug.cgi?id=51692
+
+        * svg/SVGLength.cpp:
+        (WebCore::stringToLengthType):
+        (WebCore::SVGLength::setValueAsString):
+
 2010-12-30  Abhishek Arya  <inferno@chromium.org>
 
         Reviewed by Eric Seidel.
index e888d9a..6d75f8b 100644 (file)
@@ -93,13 +93,9 @@ inline SVGLengthType stringToLengthType(const UChar*& ptr, const UChar* end)
         return LengthTypeNumber;
 
     const UChar firstChar = *ptr;
-    ++ptr;
 
-    if (firstChar == '%') {
-        if (ptr == end)
-            return LengthTypePercentage;
-        return LengthTypeUnknown;
-    }
+    if (++ptr == end)
+        return firstChar == '%' ? LengthTypePercentage : LengthTypeUnknown;
 
     const UChar secondChar = *ptr;
 
@@ -266,6 +262,7 @@ void SVGLength::setValueAsString(const String& string, ExceptionCode& ec)
     }
 
     SVGLengthType type = stringToLengthType(ptr, end);
+    ASSERT(ptr <= end);
     if (type == LengthTypeUnknown) {
         ec = SYNTAX_ERR;
         return;