Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
SUSE:SLE-12:GA
gnome-packagekit
gnome-packagekit-fix-polkit-usage.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File gnome-packagekit-fix-polkit-usage.patch of Package gnome-packagekit
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
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor