[glib] Don't leak the FD list



commit 7a6f8bd3c34e5f5e20f6770d54406b7abc5a396d
Author: Christian Persch <chpe gnome org>
Date:   Mon Aug 30 15:53:49 2010 +0200

    Don't leak the FD list
    
    ==6793== 32 (24 direct, 8 indirect) bytes in 1 blocks are definitely lost in loss record 780 of 1,423
    ==6793==    at 0x4005BDC: malloc (vg_replace_malloc.c:195)
    ==6793==    by 0x4057094: g_malloc (gmem.c:134)
    ==6793==    by 0x406F2D6: g_slice_alloc (gslice.c:836)
    ==6793==    by 0x406F31B: g_slice_alloc0 (gslice.c:848)
    ==6793==    by 0x413D5BB: g_type_create_instance (gtype.c:1867)
    ==6793==    by 0x412372A: g_object_constructor (gobject.c:1482)
    ==6793==    by 0x4122E1D: g_object_newv (gobject.c:1266)
    ==6793==    by 0x4122B93: g_object_new (gobject.c:1178)
    ==6793==    by 0x41DB582: g_unix_fd_list_new_from_array (gunixfdlist.c:191)
    ==6793==    by 0x421BFD6: _g_dbus_worker_do_read_cb (gdbusprivate.c:590)
    
    Bug #628329.

 gio/gdbusprivate.c |    1 +
 1 files changed, 1 insertions(+), 0 deletions(-)
---
diff --git a/gio/gdbusprivate.c b/gio/gdbusprivate.c
index ccce66e..6d1a71d 100644
--- a/gio/gdbusprivate.c
+++ b/gio/gdbusprivate.c
@@ -717,6 +717,7 @@ _g_dbus_worker_do_read_cb (GInputStream  *input_stream,
           if (worker->read_fd_list != NULL)
             {
               g_dbus_message_set_unix_fd_list (message, worker->read_fd_list);
+              g_object_unref (worker->read_fd_list);
               worker->read_fd_list = NULL;
             }
 #endif



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