BlueZ segfault with a Jolla phone

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

 



Hello BlueZ devs,

I have run into a segfault trying to connect to a Jolla
phone today.

I am using BlueZ 5.46 as packaged for Arch Linux. I have
recompiled the package with debug symbols and ran in gdb
and Valgrind. The gdb backtrace and Valgrind output are
attached.

The question is, given the number of errors reported by
Valgrind, am I looking for a single bug, or is BlueZ
rather cavalier when it comes to memory safety?
(No offense, just asking.)

From what I was able to find out, the problem is that
bluetoothd attempts to print an adapter's address in ba2str,
but the argument it gets is rubbish. More precisely, in

        ba2str(btd_adapter_get_address(device->adapter), srcaddr);

device->adapter contains random data.

I'd like to find the issue, any help is appreciated.

                              -- David
(gdb) bt
#0  ba2str (ba=0x10, str=str@entry=0x7fffffffbef0 "\200Q3") at lib/bluetooth.c:79
#1  0x000000010007ce95 in update_bredr_services (req=req@entry=0x100302dd0, 
    recs=recs@entry=0x1003369b0) at src/device.c:4356
#2  0x000000010007d625 in browse_cb (recs=0x1003369b0, err=0, user_data=0x100302dd0)
    at src/device.c:4587
#3  0x00000001000578e0 in search_completed_cb (type=<optimized out>, 
    status=<optimized out>, rsp=<optimized out>, size=<optimized out>, 
    user_data=0x100300db0) at src/sdp-client.c:205
#4  0x000000010008dc2a in sdp_process (session=<optimized out>) at lib/sdp.c:4354
#5  0x0000000100057a36 in search_process_cb (chan=<optimized out>, 
    cond=<optimized out>, user_data=<optimized out>) at src/sdp-client.c:230
#6  0x00007f03896fb8c5 in g_main_context_dispatch () from /usr/lib/libglib-2.0.so.0
#7  0x00007f03896fbc88 in ?? () from /usr/lib/libglib-2.0.so.0
#8  0x00007f03896fbfa2 in g_main_loop_run () from /usr/lib/libglib-2.0.so.0
#9  0x0000000100017e0c in main (argc=<optimized out>, argv=<optimized out>)
    at src/main.c:733
==30400== Memcheck, a memory error detector
==30400== Copyright (C) 2002-2017, and GNU GPL'd, by Julian Seward et al.
==30400== Using Valgrind-3.13.0 and LibVEX; rerun with -h for copyright info
==30400== Command: /usr/lib/bluetooth/bluetoothd
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x1855EA: browse_cb (device.c:4573)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91428 is 8 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 4
==30400==    at 0x185610: browse_cb (device.c:4579)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91450 is 48 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x184E47: update_bredr_services (device.c:4346)
==30400==    by 0x185624: browse_cb (device.c:4587)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91428 is 8 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x184FE7: update_record (device.c:4324)
==30400==    by 0x184FE7: update_bredr_services (device.c:4416)
==30400==    by 0x185624: browse_cb (device.c:4587)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91448 is 40 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x18501D: update_record (device.c:4328)
==30400==    by 0x18501D: update_bredr_services (device.c:4416)
==30400==    by 0x185624: browse_cb (device.c:4587)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91448 is 40 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid write of size 8
==30400==    at 0x18502A: update_record (device.c:4328)
==30400==    by 0x18502A: update_bredr_services (device.c:4416)
==30400==    by 0x185624: browse_cb (device.c:4587)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91448 is 40 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x18502E: update_record (device.c:4331)
==30400==    by 0x18502E: update_bredr_services (device.c:4416)
==30400==    by 0x185624: browse_cb (device.c:4587)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91428 is 8 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x1853A0: update_record (device.c:4333)
==30400==    by 0x1853A0: update_bredr_services (device.c:4416)
==30400==    by 0x185624: browse_cb (device.c:4587)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91440 is 32 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x1853C6: update_record (device.c:4337)
==30400==    by 0x1853C6: update_bredr_services (device.c:4416)
==30400==    by 0x185624: browse_cb (device.c:4587)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91440 is 32 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid write of size 8
==30400==    at 0x1853D3: update_record (device.c:4337)
==30400==    by 0x1853D3: update_bredr_services (device.c:4416)
==30400==    by 0x185624: browse_cb (device.c:4587)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91440 is 32 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 4
==30400==    at 0x185625: browse_cb (device.c:4590)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91450 is 48 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid write of size 4
==30400==    at 0x185918: browse_cb (device.c:4591)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91450 is 48 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 2
==30400==    at 0x185924: browse_cb (device.c:4592)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c9145c is 60 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x185840: browse_cb (device.c:4579)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91448 is 40 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x184E47: update_bredr_services (device.c:4346)
==30400==    by 0x18566C: search_cb (device.c:4535)
==30400==    by 0x18566C: browse_cb (device.c:4600)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91428 is 8 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x185686: search_cb (device.c:4544)
==30400==    by 0x185686: browse_cb (device.c:4600)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91440 is 32 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x18568A: search_cb (device.c:4541)
==30400==    by 0x18568A: browse_cb (device.c:4600)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91448 is 40 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid write of size 8
==30400==    at 0x185698: search_cb (device.c:4542)
==30400==    by 0x185698: browse_cb (device.c:4600)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91448 is 40 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x1857D4: search_cb (device.c:4560)
==30400==    by 0x1857D4: browse_cb (device.c:4600)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91440 is 32 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== Invalid read of size 8
==30400==    at 0x1857E0: search_cb (device.c:4563)
==30400==    by 0x1857E0: browse_cb (device.c:4600)
==30400==    by 0x15F8DF: search_completed_cb (sdp-client.c:205)
==30400==    by 0x195C29: sdp_process (sdp.c:4354)
==30400==    by 0x15FA35: search_process_cb (sdp-client.c:230)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x11FE0B: main (main.c:733)
==30400==  Address 0x6c91428 is 8 bytes inside a block of size 64 free'd
==30400==    at 0x4C2D16B: free (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x1830B8: gatt_client_ready_cb (device.c:4692)
==30400==    by 0x1A57BE: notify_client_ready.part.11 (gatt-client.c:1129)
==30400==    by 0x1A352F: discovery_op_complete (gatt-client.c:379)
==30400==    by 0x1A4078: discover_primary_cb (gatt-client.c:1101)
==30400==    by 0x1ACDC6: discovery_op_complete (gatt-helpers.c:628)
==30400==    by 0x1ACFF8: read_by_grp_type_cb (gatt-helpers.c:730)
==30400==    by 0x1A2DA0: handle_rsp (att.c:707)
==30400==    by 0x1A2DA0: can_read_data (att.c:879)
==30400==    by 0x1ABCD2: watch_callback (io-glib.c:170)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==  Block was alloc'd at
==30400==    at 0x4C2DF55: calloc (in /usr/lib/valgrind/vgpreload_memcheck-amd64-linux.so)
==30400==    by 0x4E88080: g_malloc0 (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x17DF2D: browse_request_new.part.26 (device.c:5016)
==30400==    by 0x17DFCD: browse_request_new (device.c:5013)
==30400==    by 0x17DFCD: device_browse_sdp (device.c:5116)
==30400==    by 0x182A31: connect_profiles (device.c:1772)
==30400==    by 0x19AA5A: process_message.isra.6 (object.c:259)
==30400==    by 0x51708D2: ??? (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x5161F53: dbus_connection_dispatch (in /usr/lib/libdbus-1.so.3.14.11)
==30400==    by 0x197150: message_dispatch (mainloop.c:72)
==30400==    by 0x4E828C4: g_main_context_dispatch (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82C87: ??? (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400==    by 0x4E82FA1: g_main_loop_run (in /usr/lib/libglib-2.0.so.0.5200.3)
==30400== 
==30400== 
==30400== HEAP SUMMARY:
==30400==     in use at exit: 43,207 bytes in 337 blocks
==30400==   total heap usage: 8,283 allocs, 7,946 frees, 682,147 bytes allocated
==30400== 
==30400== LEAK SUMMARY:
==30400==    definitely lost: 16 bytes in 1 blocks
==30400==    indirectly lost: 302 bytes in 11 blocks
==30400==      possibly lost: 0 bytes in 0 blocks
==30400==    still reachable: 42,889 bytes in 325 blocks
==30400==         suppressed: 0 bytes in 0 blocks
==30400== Rerun with --leak-check=full to see details of leaked memory
==30400== 
==30400== For counts of detected and suppressed errors, rerun with: -v
==30400== ERROR SUMMARY: 57 errors from 20 contexts (suppressed: 0 from 0)

[Index of Archives]     [Bluez Devel]     [Linux Wireless Networking]     [Linux Wireless Personal Area Networking]     [Linux ATH6KL]     [Linux USB Devel]     [Linux Media Drivers]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Big List of Linux Books]

  Powered by Linux