summaryrefslogtreecommitdiffstats
path: root/src/libs/installer/downloadfiletask.cpp
diff options
context:
space:
mode:
authorOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-06-02 13:00:18 +0200
committerOswald Buddenhagen <oswald.buddenhagen@digia.com>2014-06-02 13:00:18 +0200
commit51afc1eb8ebc101ced5874eeadd73d5dfb8612bb (patch)
tree0f85822e97b9b1fb63a8792c2b9b85ab982270b1 /src/libs/installer/downloadfiletask.cpp
parente89721bce16d6486e47b5b88d24467face5a11aa (diff)
parent8c9831108a2aa591908b9548dec911dbefa4fffb (diff)
Merge remote-tracking branch 'origin/1.6'
Conflicts: dist/config/config.xml dist/packages/org.qtproject.ifw.binaries/meta/package.xml dist/packages/org.qtproject.ifw/meta/package.xml installerfw.pri Change-Id: I32a2a17b8fd7dc0f1f9c12272fc5f814ea5d86cb
Diffstat (limited to 'src/libs/installer/downloadfiletask.cpp')
-rw-r--r--src/libs/installer/downloadfiletask.cpp9
1 files changed, 8 insertions, 1 deletions
diff --git a/src/libs/installer/downloadfiletask.cpp b/src/libs/installer/downloadfiletask.cpp
index 0e29aebe6..b978bb818 100644
--- a/src/libs/installer/downloadfiletask.cpp
+++ b/src/libs/installer/downloadfiletask.cpp
@@ -45,6 +45,7 @@
#include <QEventLoop>
#include <QFile>
+#include <QFileInfo>
#include <QNetworkProxyFactory>
#include <QSslError>
#include <QTemporaryFile>
@@ -307,8 +308,14 @@ QNetworkReply *Downloader::startDownload(const FileTaskItem &item)
} else {
file.reset(new QFile(target));
}
+
+ if (file->exists() && (!QFileInfo(file->fileName()).isFile())) {
+ m_futureInterface->reportException(FileTaskException(QString::fromLatin1("Target file "
+ "'%1' already exists but is not a file.").arg(file->fileName())));
+ return 0;
+ }
+
if (!file->open(QIODevice::WriteOnly | QIODevice::Truncate)) {
- file->remove();
m_futureInterface->reportException(FileTaskException(QString::fromLatin1("Could not open "
"target '%1' for write. Error: %2.").arg(file->fileName(), file->errorString())));
return 0;