summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-10-07 16:00:34 +0300
committerArttu Tarkiainen <arttu.tarkiainen@qt.io>2021-10-08 12:35:33 +0000
commit1b08164d303eccf31d431873085e6ff3da43c517 (patch)
tree486e47b4d24b2f17e066071bacfed8dd0023b833
parent9bb32f97084ab574094c4ca54e7d875d2eb90375 (diff)
Fix uncaught exception in InstallIconsOperation::performOperation()
Task-number: QTIFW-2347 Change-Id: I1eb11495f3985a0e845853fbfc598447e662bada Reviewed-by: Katja Marttila <katja.marttila@qt.io>
-rw-r--r--src/libs/installer/installiconsoperation.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/libs/installer/installiconsoperation.cpp b/src/libs/installer/installiconsoperation.cpp
index de1ddcc4f..cfb5a9536 100644
--- a/src/libs/installer/installiconsoperation.cpp
+++ b/src/libs/installer/installiconsoperation.cpp
@@ -1,6 +1,6 @@
/**************************************************************************
**
-** Copyright (C) 2020 The Qt Company Ltd.
+** Copyright (C) 2021 The Qt Company Ltd.
** Contact: https://www.qt.io/licensing/
**
** This file is part of the Qt Installer Framework.
@@ -32,6 +32,7 @@
#include "globals.h"
#include "adminauthorization.h"
#include "remoteclient.h"
+#include "errors.h"
#include <QDebug>
#include <QDir>
@@ -158,7 +159,16 @@ bool InstallIconsOperation::performOperation()
if (QFile(target).exists()) {
// first backup...
- const QString backup = generateTemporaryFileName(target);
+ QString backup;
+ try {
+ backup = generateTemporaryFileName(target);
+ } catch (const QInstaller::Error &e) {
+ setError(UserDefinedError);
+ setErrorString(tr("Cannot prepare to backup file \"%1\": %2")
+ .arg(QDir::toNativeSeparators(target), e.message()));
+ undoOperation();
+ return false;
+ }
QFile bf(target);
if (!bf.copy(backup)) {
setError(UserDefinedError);