diff options
author | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-11-10 12:55:38 +0200 |
---|---|---|
committer | Arttu Tarkiainen <arttu.tarkiainen@qt.io> | 2020-11-18 13:36:42 +0200 |
commit | 13c9e1111d89d1a2a06954c00bb3d3c33d4ecfa3 (patch) | |
tree | dcd1ce2e0803c2ead8109d221dd3b545725c8810 | |
parent | 602cd6c8f6fb9c8ed21786bb08c56c81a40203af (diff) |
Fix permissions in 'Licenses' and 'installerResources' directories
Both directories are created by IFW so they should follow the same
file permissions practice we use whenever possible. This fix also
applies to subdirectories inside 'installerResources'.
Change-Id: I747a7638028fb0b9ff406143a97b5100eacc2566
Reviewed-by: Iikka Eklund <iikka.eklund@qt.io>
-rw-r--r-- | src/libs/installer/extractarchiveoperation.cpp | 8 | ||||
-rw-r--r-- | src/libs/installer/licenseoperation.cpp | 4 |
2 files changed, 9 insertions, 3 deletions
diff --git a/src/libs/installer/extractarchiveoperation.cpp b/src/libs/installer/extractarchiveoperation.cpp index 63e560e79..99dd88a7e 100644 --- a/src/libs/installer/extractarchiveoperation.cpp +++ b/src/libs/installer/extractarchiveoperation.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -122,7 +122,8 @@ bool ExtractArchiveOperation::performOperation() QStringList files = callback.extractedFiles(); - QString fileDirectory = targetDir + QLatin1String("/installerResources/") + + const QString resourcesPath = targetDir + QLatin1Char('/') + QLatin1String("installerResources"); + QString fileDirectory = resourcesPath + QLatin1Char('/') + archivePath.section(QLatin1Char('/'), 1, 1, QString::SectionSkipEmpty) + QLatin1Char('/'); QString archiveFileName = archivePath.section(QLatin1Char('/'), 2, 2, QString::SectionSkipEmpty); QFileInfo fileInfo2(archiveFileName); @@ -136,6 +137,9 @@ bool ExtractArchiveOperation::performOperation() if (!dir.exists()) { dir.mkpath(targetDirectoryInfo.absolutePath()); } + setDefaultFilePermissions(resourcesPath, DefaultFilePermissions::Executable); + setDefaultFilePermissions(targetDirectoryInfo.absolutePath(), DefaultFilePermissions::Executable); + QFile file(targetDirectoryInfo.absolutePath() + QLatin1Char('/') + fileName); if (file.open(QIODevice::WriteOnly)) { setDefaultFilePermissions(file.fileName(), DefaultFilePermissions::NonExecutable); diff --git a/src/libs/installer/licenseoperation.cpp b/src/libs/installer/licenseoperation.cpp index 7296c6606..a5a61c71f 100644 --- a/src/libs/installer/licenseoperation.cpp +++ b/src/libs/installer/licenseoperation.cpp @@ -1,6 +1,6 @@ /************************************************************************** ** -** Copyright (C) 2017 The Qt Company Ltd. +** Copyright (C) 2020 The Qt Company Ltd. ** Contact: https://www.qt.io/licensing/ ** ** This file is part of the Qt Installer Framework. @@ -30,6 +30,7 @@ #include "packagemanagercore.h" #include "settings.h" +#include "fileutils.h" #include <QtCore/QDir> #include <QtCore/QFile> @@ -74,6 +75,7 @@ bool LicenseOperation::performOperation() QDir dir; dir.mkpath(targetDir); + setDefaultFilePermissions(targetDir, DefaultFilePermissions::Executable); setArguments(QStringList(targetDir)); for (QVariantMap::const_iterator it = licenses.constBegin(); it != licenses.constEnd(); ++it) { |