Parent: a097cb0732b8cf9eb922fdf75d25812fc0e707b7
Author: Szymon Janc <szymon.janc@codecoup.pl>
Committer: Szymon Janc <szymon.janc@codecoup.pl>
Date: 2018-03-14 16:36:50
Tree: 4692ec50caa01d8ff5b8528cbc63b4ba54cb9676
shared/gatt-server: Fix crash on read multiple When read multiple includes external characteristic, call to gatt_db_attribute_read's complete callback is asynchronous. Fix following crash: Use of uninitialised value of size 8 at 0x49718A: read_multiple_complete_cb (gatt-server.c:994) by 0x498999: pending_read_result (gatt-db.c:136) by 0x49A84B: gatt_db_attribute_read_result (gatt-db.c:1787) by 0x451F4C: read_reply_cb (gatt-database.c:1712) by 0x48B221: method_call_reply (client.c:972) by 0x53AB601: ??? (in /usr/lib64/libdbus-1.so.3.19.3) by 0x53AEF7E: dbus_connection_dispatch (in /usr/lib64/libdbus-1.so.3.19.3) by 0x486FEF: message_dispatch (mainloop.c:72) by 0x50CB576: ??? (in /usr/lib64/libglib-2.0.so.0.5400.3) by 0x50CEB76: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.5400.3) by 0x50CEF1F: ??? (in /usr/lib64/libglib-2.0.so.0.5400.3) by 0x50CF231: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.5400.3) Invalid read of size 8 at 0x49718A: read_multiple_complete_cb (gatt-server.c:994) by 0x498999: pending_read_result (gatt-db.c:136) by 0x49A84B: gatt_db_attribute_read_result (gatt-db.c:1787) by 0x451F4C: read_reply_cb (gatt-database.c:1712) by 0x48B221: method_call_reply (client.c:972) by 0x53AB601: ??? (in /usr/lib64/libdbus-1.so.3.19.3) by 0x53AEF7E: dbus_connection_dispatch (in /usr/lib64/libdbus-1.so.3.19.3) by 0x486FEF: message_dispatch (mainloop.c:72) by 0x50CB576: ??? (in /usr/lib64/libglib-2.0.so.0.5400.3) by 0x50CEB76: g_main_context_dispatch (in /usr/lib64/libglib-2.0.so.0.5400.3) by 0x50CEF1F: ??? (in /usr/lib64/libglib-2.0.so.0.5400.3) by 0x50CF231: g_main_loop_run (in /usr/lib64/libglib-2.0.so.0.5400.3) Address 0x8 is not stack'd, malloc'd or (recently) free'd
Diffstat
| M | src/shared/gatt-server.c | | | 44 | ++++++++++++++++++++++- - - - - - - - - - - - - - - - - - - - - - |
1 files changed, 22 insertions(+), 22 deletions(-)