OSDN Git Service

adapter: Fix memory leak on discovery cleanup
authorAnderson Lizardo <anderson.lizardo@openbossa.org>
Wed, 17 Oct 2012 23:15:09 +0000 (20:15 -0300)
committerJohan Hedberg <johan.hedberg@intel.com>
Thu, 18 Oct 2012 07:32:49 +0000 (10:32 +0300)
commit8432085cfde946e2484062e51c3b8438c3b09d11
treee01b9516c0d726dfc908f129c63b7852a97efc7b
parent01a2495a833d8e8d83bd5f0ec6c608fedabd4dbb
adapter: Fix memory leak on discovery cleanup

During discovery cleanup, it was attempted to send a DevicesFound()
D-Bus signal for pending found devices, but adapter->discovery was set
to NULL before calling send_devices_found(), therefore it never sent any
signal (and there was a leak of discovery->pending list).

Fixes this memory leak when pairing two LE devices:

==1822== 8 bytes in 1 blocks are definitely lost in loss record 42 of
246
==1822==    at 0x482BE68: malloc (in
/usr/lib/valgrind/vgpreload_memcheck-x86-linux.so)
==1822==    by 0x48869AA: standard_malloc (gmem.c:85)
==1822==    by 0x4886E42: g_malloc (gmem.c:159)
==1822==    by 0x489B26D: g_slice_alloc (gslice.c:1003)
==1822==    by 0x489C10A: g_slist_prepend (gslist.c:265)
==1822==    by 0x1855AE: adapter_update_found_devices (adapter.c:2846)
==1822==    by 0x191431: btd_event_device_found (event.c:260)
==1822==    by 0xBC01001A: ???
==1822==
src/adapter.c