diff options
author | Katja Marttila <katja.marttila@theqtcompany.com> | 2016-02-04 12:40:33 +0200 |
---|---|---|
committer | Katja Marttila <katja.marttila@theqtcompany.com> | 2016-02-15 11:25:08 +0000 |
commit | 9d4be1a53be2b643114d051332d8439bc8809e59 (patch) | |
tree | f18b7e67224eb110d763cb5a8c7996aa5f33f439 /src/libs/installer/packagemanagercore.cpp | |
parent | 85cad029464f1209b5aeab7150b6e3df1fa1f69b (diff) |
Fix crash when updating admin installation with user/temp repository
Grant permission rights for writing maintenance config file
Change-Id: I9364358455b8ad5e98b03c20d949c2562ba2535a
Task-number: QTIFW-740
Reviewed-by: Iikka Eklund <iikka.eklund@theqtcompany.com>
Diffstat (limited to 'src/libs/installer/packagemanagercore.cpp')
-rw-r--r-- | src/libs/installer/packagemanagercore.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/src/libs/installer/packagemanagercore.cpp b/src/libs/installer/packagemanagercore.cpp index 81fd29472..e008a220d 100644 --- a/src/libs/installer/packagemanagercore.cpp +++ b/src/libs/installer/packagemanagercore.cpp @@ -1025,8 +1025,17 @@ void PackageManagerCore::networkSettingsChanged() d->m_repoFetched = false; d->m_updateSourcesAdded = false; - if (d->isUpdater() || d->isPackageManager()) + if (d->isUpdater() || d->isPackageManager()) { + bool gainedAdminRights = false; + QTemporaryFile tempAdminFile(d->targetDir() + QStringLiteral("/XXXXXX")); + if (!tempAdminFile.open() || !tempAdminFile.isWritable()) { + gainAdminRights(); + gainedAdminRights = true; + } d->writeMaintenanceConfigFiles(); + if (gainedAdminRights) + dropAdminRights(); + } KDUpdater::FileDownloaderFactory::instance().setProxyFactory(proxyFactory()); emit coreNetworkSettingsChanged(); |