diff options
author | Timothy Pearson <[email protected]> | 2013-04-07 02:10:54 -0500 |
---|---|---|
committer | Timothy Pearson <[email protected]> | 2013-04-07 02:10:54 -0500 |
commit | 3fefe5e7d33c6c28d8109f5791c1e0a4a432a07f (patch) | |
tree | 3a9aed7f17d5c86515706b56efdcb712cff2cf23 /tdecore | |
parent | 06b65e787b816b67624d435a1d7e7d443e8a6233 (diff) | |
download | tdelibs-3fefe5e7d33c6c28d8109f5791c1e0a4a432a07f.tar.gz tdelibs-3fefe5e7d33c6c28d8109f5791c1e0a4a432a07f.zip |
Fix KSVGIconPainter deadlock with specifically formatted input files
This resolves Bug 1418
Diffstat (limited to 'tdecore')
-rw-r--r-- | tdecore/svgicons/ksvgiconpainter.cpp | 8 |
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' && |