[polkit/f17] Don't leak file descriptors (bgo #671486)

David Zeuthen davidz at fedoraproject.org
Thu Mar 8 20:46:33 UTC 2012


commit b0dfcef3702824c405065d171839963ab2eb0306
Author: David Zeuthen <davidz at redhat.com>
Date:   Thu Mar 8 15:46:07 2012 -0500

    Don't leak file descriptors (bgo #671486)

 ...tAgentSession-Don-t-leak-file-descriptors.patch |   49 ++++++++++++++++++++
 1 files changed, 49 insertions(+), 0 deletions(-)
---
diff --git a/0001-PolkitAgentSession-Don-t-leak-file-descriptors.patch b/0001-PolkitAgentSession-Don-t-leak-file-descriptors.patch
new file mode 100644
index 0000000..8b860b9
--- /dev/null
+++ b/0001-PolkitAgentSession-Don-t-leak-file-descriptors.patch
@@ -0,0 +1,49 @@
+From 4aa6dd28476e12a5265d71b6bc19c730f1036785 Mon Sep 17 00:00:00 2001
+From: David Zeuthen <davidz at redhat.com>
+Date: Thu, 8 Mar 2012 15:36:30 -0500
+Subject: [PATCH] PolkitAgentSession: Don't leak file descriptors
+
+This was reported here
+
+ https://bugzilla.gnome.org/show_bug.cgi?id=671486
+
+Signed-off-by: David Zeuthen <davidz at redhat.com>
+---
+ src/polkitagent/polkitagentsession.c |   14 ++++++++++++++
+ 1 files changed, 14 insertions(+), 0 deletions(-)
+
+diff --git a/src/polkitagent/polkitagentsession.c b/src/polkitagent/polkitagentsession.c
+index ad3bbc3..8129cd9 100644
+--- a/src/polkitagent/polkitagentsession.c
++++ b/src/polkitagent/polkitagentsession.c
+@@ -130,6 +130,8 @@ G_DEFINE_TYPE (PolkitAgentSession, polkit_agent_session, G_TYPE_OBJECT);
+ static void
+ polkit_agent_session_init (PolkitAgentSession *session)
+ {
++  session->child_stdin = -1;
++  session->child_stdout = -1;
+ }
+ 
+ static void kill_helper (PolkitAgentSession *session);
+@@ -395,6 +397,18 @@ kill_helper (PolkitAgentSession *session)
+       session->child_stdout_channel = NULL;
+     }
+ 
++  if (session->child_stdout != -1)
++    {
++      g_warn_if_fail (close (session->child_stdout) == 0);
++      session->child_stdout = -1;
++    }
++
++  if (session->child_stdin != -1)
++    {
++      g_warn_if_fail (close (session->child_stdin) == 0);
++      session->child_stdin = -1;
++    }
++
+   session->helper_is_running = FALSE;
+ 
+  out:
+-- 
+1.7.9.1
+


More information about the scm-commits mailing list