summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/fileutils.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/libs/installer/fileutils.cpp')
-rw-r--r--src/libs/installer/fileutils.cpp7
1 files changed, 5 insertions, 2 deletions
diff --git a/src/libs/installer/fileutils.cpp b/src/libs/installer/fileutils.cpp
index 315a34f5d..be08aa8ad 100644
--- a/src/libs/installer/fileutils.cpp
+++ b/src/libs/installer/fileutils.cpp
@@ -393,8 +393,11 @@ void QInstaller::moveDirectoryContents(const QString &sourceDir, const QString &
while (it.hasNext()) {
const QFileInfo i(it.next());
if (i.isDir()) {
- moveDirectoryContents(QDir(sourceDir).absoluteFilePath(i.fileName()),
- QDir(targetDir).absoluteFilePath(i.fileName()));
+ // only copy directories that are not the target to avoid loop dir creations
+ QString newSource = QDir(sourceDir).absoluteFilePath(i.fileName());
+ if (QDir(newSource) != QDir(targetDir)) {
+ moveDirectoryContents(newSource, QDir(targetDir).absoluteFilePath(i.fileName()));
+ }
} else {
QFile f(i.filePath());
const QString target = QDir(targetDir).absoluteFilePath(i.fileName());