summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog5
-rw-r--r--polkitd/polkit-session.c4
-rw-r--r--tools/polkit-grant-privilege.c7
3 files changed, 16 insertions, 0 deletions
diff --git a/ChangeLog b/ChangeLog
index b89b271..ea5dce0 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,5 +1,10 @@
2006-03-16 David Zeuthen <davidz@redhat.com>
+ * polkitd/polkit-session.c (polkit_session_close): Remember to
+ kill the child here
+
+2006-03-16 David Zeuthen <davidz@redhat.com>
+
* polkitd/main.c (main): Bail if we can't become primary owner
* polkitd/polkit-session.c (data_from_pam): Unref when the child dies
diff --git a/polkitd/polkit-session.c b/polkitd/polkit-session.c
index 4e28ab5..3521830 100644
--- a/polkitd/polkit-session.c
+++ b/polkitd/polkit-session.c
@@ -887,6 +887,10 @@ polkit_session_close (PolicyKitSession *session,
if (!polkit_session_check_caller (session, context))
return FALSE;
+ /* if we have a child... kill it */
+ if (session->priv->child_pid != 0)
+ kill (session->priv->child_pid, SIGTERM);
+
if (!do_not_revoke_privilege && session->priv->have_granted_temp_privileges) {
if (!polkit_manager_remove_temporary_privilege (session->priv->manager,
diff --git a/tools/polkit-grant-privilege.c b/tools/polkit-grant-privilege.c
index 0a2d58c..31ef14b 100644
--- a/tools/polkit-grant-privilege.c
+++ b/tools/polkit-grant-privilege.c
@@ -198,6 +198,13 @@ out:
g_error_free (error);
}
+ if (!org_freedesktop_PolicyKit_Session_close (session,
+ TRUE,
+ &error)) {
+ g_warning ("Close: %s", error->message);
+ g_error_free (error);
+ }
+
exit (0);
}