[gnome-terminal] server: Fix refcount leak



commit 1554c74da520db6dff65b9dbf4eb2de82b14e76f
Author: Christian Persch <chpe src gnome org>
Date:   Sat Apr 25 21:59:50 2020 +0200

    server: Fix refcount leak
    
    Ownership of the GDBusMethodInvocation is passed to terminal_receiver_impl_exec,
    and will be released by terminal_receiver_complete_exec. The extra reference
    added to ExecData was leaked, causing the GUnixFDList passed from the client
    (if any) also to be leaked, which meant that its file descriptors were never
    closed, leading to FD exhaustion.

 src/terminal-gdbus.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
---
diff --git a/src/terminal-gdbus.c b/src/terminal-gdbus.c
index b9bfcf5b..9a58a9a2 100644
--- a/src/terminal-gdbus.c
+++ b/src/terminal-gdbus.c
@@ -192,7 +192,7 @@ terminal_receiver_impl_exec (TerminalReceiver *receiver,
 
   ExecData *exec_data = g_new (ExecData, 1);
   exec_data->receiver = g_object_ref (receiver);
-  exec_data->invocation = g_object_ref (invocation);
+  exec_data->invocation = invocation; /* adopted */
 
   GError *err = NULL;
   if (!terminal_screen_exec (priv->screen,


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]