From 9d4be1a53be2b643114d051332d8439bc8809e59 Mon Sep 17 00:00:00 2001 From: Katja Marttila Date: Thu, 4 Feb 2016 12:40:33 +0200 Subject: 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 --- src/libs/installer/packagemanagercore.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'src/libs') 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(); -- cgit v1.2.3