mirror of
https://gitlab.com/freepascal.org/lazarus/lazarus.git
synced 2025-04-09 23:08:05 +02:00
fpvectorial: Fix svg reader crashing with some "malformed" files which Firefox can open (issue #028659)
git-svn-id: trunk@50023 -
This commit is contained in:
parent
066fb17354
commit
218cce9fe2
@ -275,12 +275,14 @@ procedure TSVGPathTokenizer.TokenizePathString(AStr: string);
|
||||
const
|
||||
Str_Space: Char = ' ';
|
||||
Str_Comma: Char = ',';
|
||||
Str_Plus: Char = '+';
|
||||
Str_Minus: Char = '-';
|
||||
ListOfCommandLetters: set of Char = ['a'..'d', 'f'..'z', 'A'..'D', 'F'..'Z'];
|
||||
var
|
||||
i: Integer;
|
||||
lTmpStr: string = '';
|
||||
lState: Integer;
|
||||
lFirstTmpStrChar, lCurChar: Char;
|
||||
lFirstTmpStrChar, lCurChar, lPrevChar: Char;
|
||||
begin
|
||||
lState := 0;
|
||||
|
||||
@ -290,6 +292,7 @@ begin
|
||||
case lState of
|
||||
0: // Adding to the tmp string
|
||||
begin
|
||||
if i > 0 then lPrevChar := AStr[i-1];
|
||||
lCurChar := AStr[i];
|
||||
if lCurChar = Str_Space then
|
||||
begin
|
||||
@ -302,6 +305,11 @@ begin
|
||||
AddToken(lTmpStr);
|
||||
lTmpStr := '';
|
||||
end
|
||||
else if (lCurChar in [Str_Plus, Str_Minus]) and (lPrevChar in ['0'..'9']) then
|
||||
begin
|
||||
AddToken(lTmpStr);
|
||||
lTmpStr := lCurChar;
|
||||
end
|
||||
else
|
||||
begin
|
||||
// Check for a break, from letter to number
|
||||
|
Loading…
Reference in New Issue
Block a user