summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--src/alarm-lib.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/src/alarm-lib.c b/src/alarm-lib.c
index f721c8a..01e7325 100644
--- a/src/alarm-lib.c
+++ b/src/alarm-lib.c
@@ -596,13 +596,20 @@ error:
EXPORT_API void alarmmgr_fini()
{
SECURE_LOGD("Enter");
+ bool is_user = false;
+
+ if (getuid() >= REGULAR_UID_MIN)
+ is_user = true;
+
if (introspection_data) {
g_dbus_node_info_unref(introspection_data);
introspection_data = NULL;
}
- if (alarm_context.connection != NULL && registration_id != 0) {
- g_dbus_connection_unregister_object(alarm_context.connection, registration_id);
+ if (registration_id != 0) {
+ g_dbus_connection_unregister_object(is_user ?
+ alarm_context.session_conn : alarm_context.connection,
+ registration_id);
registration_id = 0;
}
@@ -616,7 +623,7 @@ EXPORT_API void alarmmgr_fini()
alarm_context.connection = NULL;
}
- if (alarm_context.connection) {
+ if (alarm_context.session_conn) {
g_object_unref(alarm_context.session_conn);
alarm_context.session_conn = NULL;
}