summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2013-07-03 16:54:44 +0200
committerThe Qt Project <gerrit-noreply@qt-project.org>2013-08-26 23:53:59 +0200
commit046efb811b6e6ff0c3e349c1c8262ef6ed49313e (patch)
tree5e0f386f28626ad86d422384c76687c334cbd1ac
parent50b8ab3f09f1c52b1cbe0cdf20bbae3419c8f0e8 (diff)
downloadqttools-046efb811b6e6ff0c3e349c1c8262ef6ed49313e.tar.gz
don't crash if builddir is suffix of sourcedir (or vice-versa)
Change-Id: I97a6e2ebd51350cbf39c86efa5c26a376c49da95 Reviewed-by: Joerg Bornemann <joerg.bornemann@digia.com> (cherry picked from qtbase/b30273ec4a4ce65794fd402c6e3eb21de7bae1b9)
-rw-r--r--src/linguist/shared/qmakeglobals.cpp3
1 files changed, 2 insertions, 1 deletions
diff --git a/src/linguist/shared/qmakeglobals.cpp b/src/linguist/shared/qmakeglobals.cpp
index dbe694443..48c4dfc7c 100644
--- a/src/linguist/shared/qmakeglobals.cpp
+++ b/src/linguist/shared/qmakeglobals.cpp
@@ -249,7 +249,8 @@ void QMakeGlobals::setDirectories(const QString &input_dir, const QString &outpu
int srcLen = srcpath.length();
int dstLen = dstpath.length();
int lastSl = -1;
- while (++lastSl, srcpath.at(--srcLen) == dstpath.at(--dstLen))
+ while (++lastSl, --srcLen, --dstLen,
+ srcLen && dstLen && srcpath.at(srcLen) == dstpath.at(dstLen))
if (srcpath.at(srcLen) == QLatin1Char('/'))
lastSl = 0;
source_root = srcpath.left(srcLen + lastSl);