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 Kevin Ottens
parent 93afc2a04b
commit 83268c255a
No known key found for this signature in database
GPG key ID: 074BBBCB8DECC9E2

View file

@ -1479,7 +1479,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();
}