gatt: Fix crash on disconnect
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 25 Oct 2018 07:09:37 +0000 (10:09 +0300)
committerhimanshu <h.himanshu@samsung.com>
Tue, 14 Jan 2020 08:53:35 +0000 (14:23 +0530)
commit5df20986470e06d23a6ca0e8ee254b3f7d60a0ec
treedcd414640adde41eef6bf4b8b29ea1fc2c862749
parentfe4f3bbeeaf9d86ad06c8116a6bb95b0d4a2b5d4
gatt: Fix crash on disconnect

This fix a crash when ATT disconnects causing the following trace:

 Invalid read of size 8
    at 0x47CD9A: att_disconnected (gatt-database.c:335)
    by 0x4E04F5: disconn_handler (att.c:539)
    by 0x4DACD0: queue_foreach (queue.c:220)
    by 0x4E23D8: disconnect_cb (att.c:592)
    by 0x4F0A58: watch_callback (io-glib.c:170)
    by 0x50D788C: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.5600.3)
    by 0x50D7C57: ??? (in /usr/lib64/libglib-2.0.so.0.5600.3)
    by 0x50D7F81: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.5600.3)
    by 0x40D336: main (main.c:808)
  Address 0x9aed3c0 is 0 bytes inside a block of size 40 free'd
    at 0x4C2FDAC: free (vg_replace_malloc.c:530)
    by 0x47CE78: att_disconnected (gatt-database.c:358)
    by 0x47F9FF: btd_gatt_database_att_disconnected (gatt-database.c:3540)
    by 0x4AAB8E: gatt_server_cleanup (device.c:584)
    by 0x4AAC26: attio_cleanup (device.c:601)
    by 0x4ADDF1: att_disconnected_cb (device.c:4865)
    by 0x4E04F5: disconn_handler (att.c:539)
    by 0x4DACD0: queue_foreach (queue.c:220)
    by 0x4E23D8: disconnect_cb (att.c:592)
    by 0x4F0A58: watch_callback (io-glib.c:170)
    by 0x50D788C: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.5600.3)
    by 0x50D7C57: ??? (in /usr/lib64/libglib-2.0.so.0.5600.3)

Change-Id: Ib180cf7f7abb076cc94d2e08434a0cdf91134bd0
Signed-off-by: himanshu <h.himanshu@samsung.com>
src/gatt-database.c