summaryrefslogtreecommitdiff
path: root/src/svg/qsvghandler.cpp
diff options
context:
space:
mode:
authorEirik Aavitsland <eirik.aavitsland@qt.io>2018-07-09 10:45:22 +0200
committerEirik Aavitsland <eirik.aavitsland@qt.io>2018-08-09 07:44:50 +0000
commitc5f1dd14098d1cc2cb52448fb44f53966d331443 (patch)
tree454418e16d86160adf8f4d1f12b0a42589d06a47 /src/svg/qsvghandler.cpp
parent1167507b6422cd74a95cf0deffaccada9345dc27 (diff)
downloadqtsvg-5.6.tar.gz
Fix crash when parsing malformed url reference5.6
The parsing did not check for end of input. Change-Id: I56a478877d242146395977b767511425d2b8ced1 Reviewed-by: Lars Knoll <lars.knoll@qt.io> (cherry picked from commit 8c199714e9bc638fb3f6ec747fb7a23373e49335) (cherry picked from commit 97eebc52a8362f8b841e24ad0e4d54315d1948e3)
Diffstat (limited to 'src/svg/qsvghandler.cpp')
-rw-r--r--src/svg/qsvghandler.cpp11
1 files changed, 6 insertions, 5 deletions
diff --git a/src/svg/qsvghandler.cpp b/src/svg/qsvghandler.cpp
index 036b870..0cbf139 100644
--- a/src/svg/qsvghandler.cpp
+++ b/src/svg/qsvghandler.cpp
@@ -733,16 +733,17 @@ static QVector<qreal> parsePercentageList(const QChar *&str)
static QString idFromUrl(const QString &url)
{
QString::const_iterator itr = url.constBegin();
- while ((*itr).isSpace())
+ QString::const_iterator end = url.constEnd();
+ while (itr != end && (*itr).isSpace())
++itr;
- if ((*itr) == QLatin1Char('('))
+ if (itr != end && (*itr) == QLatin1Char('('))
++itr;
- while ((*itr).isSpace())
+ while (itr != end && (*itr).isSpace())
++itr;
- if ((*itr) == QLatin1Char('#'))
+ if (itr != end && (*itr) == QLatin1Char('#'))
++itr;
QString id;
- while ((*itr) != QLatin1Char(')')) {
+ while (itr != end && (*itr) != QLatin1Char(')')) {
id += *itr;
++itr;
}