summaryrefslogtreecommitdiff
path: root/unit
diff options
context:
space:
mode:
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-04-10 16:18:56 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2015-04-12 19:06:47 +0300
commite2e6bb16065b8979a465c0cc2ff9dccee26dfd7e (patch)
treeed5c453b6e520fee31d4248e0169e04ed37f7d7e /unit
parentbe0575245b1fdd03e39dcf2e5049376ffa6b2ad3 (diff)
downloadbluez-e2e6bb16065b8979a465c0cc2ff9dccee26dfd7e.tar.gz
unit/test-gdbus-client: Fix memory leak on client_no_object_manager
When creating a proxy manually with g_dbus_proxy_new it has to be freed with g_dbus_proxy_unref otherwise it leaks: 395 (80 direct, 315 indirect) bytes in 1 blocks are definitely lost in loss record 800 of 834 at 0x4C29BCF: malloc (in /usr/lib64/valgrind/vgpreload_memcheck-amd64-linux.so) by 0x4E84575: g_try_malloc0 (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x40E244: proxy_new (client.c:411) by 0x40F7FD: g_dbus_proxy_new (client.c:485) by 0x405844: client_no_object_manager (test-gdbus-client.c:837) by 0x410882: run_callback (tester.c:413) by 0x4E7E7FA: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x4E7EB97: ??? (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x4E7EEC1: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.4200.2) by 0x411CF1: tester_run (tester.c:831) by 0x4045E1: main (test-gdbus-client.c:986)
Diffstat (limited to 'unit')
-rw-r--r--unit/test-gdbus-client.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/unit/test-gdbus-client.c b/unit/test-gdbus-client.c
index ecbe51e3f..5a4b974e1 100644
--- a/unit/test-gdbus-client.c
+++ b/unit/test-gdbus-client.c
@@ -322,6 +322,11 @@ static void proxy_get_string(GDBusProxy *proxy, void *user_data)
g_assert(g_dbus_proxy_get_property(proxy, "String", &iter));
g_assert(dbus_message_iter_get_arg_type(&iter) == DBUS_TYPE_STRING);
+ if (context->proxy) {
+ g_assert(context->proxy == proxy);
+ g_dbus_proxy_unref(context->proxy);
+ }
+
dbus_message_iter_get_basic(&iter, &string);
g_assert_cmpstr(string, ==, "value");