Folder wizard: Fix infinite loop for bad paths #7041

This commit is contained in:
Christian Kamm 2019-02-18 14:32:47 +01:00 committed by ckamm
parent f42fdc6758
commit 0682a8d4e7

View File

@ -1340,7 +1340,16 @@ static QString canonicalPath(const QString &path)
{
QFileInfo selFile(path);
if (!selFile.exists()) {
return canonicalPath(selFile.dir().path()) + '/' + selFile.fileName();
const auto parentPath = selFile.dir().path();
// It's possible for the parentPath to match the path
// (possibly we've arrived at a non-existant drive root on Windows)
// and recursing would be fatal.
if (parentPath == path) {
return path;
}
return canonicalPath(parentPath) + '/' + selFile.fileName();
}
return selFile.canonicalFilePath();
}