diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-10-07 16:00:34 +0300 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2021-10-08 12:35:33 +0000 |
commit | 1b08164d303eccf31d431873085e6ff3da43c517 (patch) | |
tree | 486e47b4d24b2f17e066071bacfed8dd0023b833 | |
parent | 9bb32f97084ab574094c4ca54e7d875d2eb90375 (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.cpp | 14 |
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); |