From c816a26647ca0537709f0d15cdd550feea4de109 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Petr=20Mr=C3=A1zek?= Date: Sat, 28 Dec 2013 22:32:45 +0100 Subject: Set permissions for the updater binary after updating it. --- logic/updater/DownloadUpdateTask.cpp | 6 ++++++ 1 file changed, 6 insertions(+) (limited to 'logic/updater') diff --git a/logic/updater/DownloadUpdateTask.cpp b/logic/updater/DownloadUpdateTask.cpp index 0b09ad2a..9282c4d8 100644 --- a/logic/updater/DownloadUpdateTask.cpp +++ b/logic/updater/DownloadUpdateTask.cpp @@ -412,6 +412,7 @@ DownloadUpdateTask::processFileLists(NetJob *job, if (isUpdater) { download->setProperty("finalPath", entry.path); + download->setProperty("finalPerms", entry.mode); connect(download.get(), &MD5EtagDownload::succeeded, this, &DownloadUpdateTask::directDeployFile); } } @@ -549,11 +550,16 @@ void DownloadUpdateTask::directDeployFile(const int index) { Md5EtagDownloadPtr download = std::dynamic_pointer_cast(m_filesNetJob->operator[](index)); const QString finalPath = download->property("finalPath").toString(); + bool ok = true; + int finalMode = download->property("finalPerms").toInt(&ok); + if(!ok) + finalMode = 0755; QLOG_INFO() << "Replacing" << finalPath << "with" << download->m_output_file.fileName(); if (QFile::remove(finalPath)) { if (download->m_output_file.copy(finalPath)) { + QFile::setPermissions(finalPath, (QFileDevice::Permission) finalMode); return; } } -- cgit v1.2.3