File gnome-packagekit-fix-polkit-usage.patch of Package gnome-packagekit.1356
From 62645dad953b33676908f78ef959c3a53ff9b636 Mon Sep 17 00:00:00 2001
From: Frederic Crozat <fcrozat@suse.com>
Date: Tue, 19 Aug 2014 18:37:09 +0200
Subject: [PATCH] Properly call polkit and dbus for reboot
Polkit subject was incorrect and could cause polkitd to crash (fdo#53905).
Reboot call on logind through dbus should be sync, otherwise it is not
done at all. Those issues were initially found and fixed by Evangelos Foutras
in xfce4-session systemd proxy code
(https://bugzilla.xfce.org/show_bug.cgi?id=8729)
Fixes https://bugzilla.novell.com/show_bug.cgi?id=881221
---
src/systemd-proxy.c | 18 +++++++++---------
1 file changed, 9 insertions(+), 9 deletions(-)
diff --git a/src/systemd-proxy.c b/src/systemd-proxy.c
index 50fec25..adad6fe 100644
--- a/src/systemd-proxy.c
+++ b/src/systemd-proxy.c
@@ -44,7 +44,7 @@ systemd_proxy_new (void)
proxy = g_new0 (SystemdProxy, 1);
proxy->authority = polkit_authority_get_sync (NULL, NULL);
- proxy->subject = polkit_unix_session_new_for_process_sync (getpid(), NULL, NULL);
+ proxy->subject = polkit_unix_process_new_for_owner(getpid(), 0, -1);
return proxy;
}
@@ -71,7 +71,7 @@ systemd_proxy_can_restart (SystemdProxy *proxy,
proxy->subject,
SYSTEMD_REBOOT_ACTION,
NULL,
- POLKIT_CHECK_AUTHORIZATION_FLAGS_NONE,
+ POLKIT_CHECK_AUTHORIZATION_FLAGS_ALLOW_USER_INTERACTION,
NULL,
&local_error);
if (res == NULL) {
@@ -94,13 +94,13 @@ systemd_proxy_restart (SystemdProxy *proxy,
GDBusConnection *bus;
bus = g_bus_get_sync (G_BUS_TYPE_SYSTEM, NULL, NULL);
- g_dbus_connection_call (bus,
- SYSTEMD_DBUS_NAME,
- SYSTEMD_DBUS_PATH,
- SYSTEMD_DBUS_INTERFACE,
- "Reboot",
- g_variant_new ("(b)", TRUE),
- NULL, 0, G_MAXINT, NULL, NULL, NULL);
+ g_dbus_connection_call_sync (bus,
+ SYSTEMD_DBUS_NAME,
+ SYSTEMD_DBUS_PATH,
+ SYSTEMD_DBUS_INTERFACE,
+ "Reboot",
+ g_variant_new ("(b)", TRUE),
+ NULL, 0, G_MAXINT, NULL, NULL);
g_object_unref (bus);
return TRUE;
--
1.8.4.5