summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDavid Zeuthen <david@fubar.dk>2006-03-17 00:21:31 +0000
committerDavid Zeuthen <david@fubar.dk>2006-03-17 00:21:31 +0000
commit7527634309362c42cd851428769e300cd6b311bf (patch)
tree6a7c7b8f8c73cd89f82c0bf973f17ecfce57ef69
parent11176b6bcc85b50a26eb86ef452e31d3193285ef (diff)
downloadpolkit-7527634309362c42cd851428769e300cd6b311bf.tar.gz
Remember to kill the child here
-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);
}