summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-04-07 02:10:54 -0500
committerTimothy Pearson <kb9vqf@pearsoncomputing.net>2013-04-07 02:10:54 -0500
commit3fefe5e7d33c6c28d8109f5791c1e0a4a432a07f (patch)
tree3a9aed7f17d5c86515706b56efdcb712cff2cf23
parent06b65e787b816b67624d435a1d7e7d443e8a6233 (diff)
downloadtdelibs-3fefe5e7d33c6c28d8109f5791c1e0a4a432a07f.tar.gz
tdelibs-3fefe5e7d33c6c28d8109f5791c1e0a4a432a07f.zip
Fix KSVGIconPainter deadlock with specifically formatted input files
This resolves Bug 1418
-rw-r--r--tdecore/svgicons/ksvgiconpainter.cpp8
1 files changed, 7 insertions, 1 deletions
diff --git a/tdecore/svgicons/ksvgiconpainter.cpp b/tdecore/svgicons/ksvgiconpainter.cpp
index 72fc96d7c..ca781db15 100644
--- a/tdecore/svgicons/ksvgiconpainter.cpp
+++ b/tdecore/svgicons/ksvgiconpainter.cpp
@@ -2208,16 +2208,22 @@ void KSVGIconPainter::drawPath(const TQString &data, bool filled)
break;
}
- if(*ptr == '+' || *ptr == '-' || (*ptr >= '0' && *ptr <= '9'))
+ if(*ptr == '+' || *ptr == '-' || *ptr == '.' || (*ptr >= '0' && *ptr <= '9'))
{
// there are still coords in this command
if(command == 'M')
+ {
command = 'L';
+ }
else if(command == 'm')
+ {
command = 'l';
+ }
}
else
+ {
command = *(ptr++);
+ }
// Detect reflection points
if(lastCommand != 'C' && lastCommand != 'c' &&