shared/gatt-client: Fix crash on ext prop read failure 66/199966/2
authorSzymon Janc <szymon.janc@codecoup.pl>
Thu, 26 Jul 2018 14:34:00 +0000 (16:34 +0200)
committerSeungyoun Ju <sy39.ju@samsung.com>
Mon, 18 Feb 2019 03:08:06 +0000 (12:08 +0900)
commited5b375cd2e3c7cabc9032267375d81b5bbb60f7
tree5f373310483844b509b16ec2e33b4d1c7a447804
parentb0ca1a09554759520accc2049e5ebc63c4c07b1c
shared/gatt-client: Fix crash on ext prop read failure

[Problem] bluetoothd crash happens.
[Cause & Measure] There is no routine for failure case of extended
 property read response. It causes invalid memory access. There is
 upstream patch for this issue. So this patch applies the upstream patch.
[Checking Method] Disconnect BLE during GATT service discovery. This is
 some times issue.

[Original upstream patch]
commit 6e2eb99f666ea7084067196472ff8d49e06f90d9
Author: Szymon Janc <szymon.janc@codecoup.pl>
Date:   Thu Jul 26 16:34:00 2018 +0200

    shared/gatt-client: Fix crash on ext prop read failure

Program received signal SIGSEGV, Segmentation fault.

Program received signal SIGSEGV, Segmentation fault.
ext_prop_read_cb (success=false, att_ecode=0 '\000', value=0x0,
    length=0, user_data=0x72ad30) at src/shared/gatt-client.c:711
711     src/shared/gatt-client.c: No such file or directory.
(gdb) bt
0  ext_prop_read_cb (success=false, att_ecode=0 '\000', value=0x0,
                     length=0, user_data=0x72ad30)
   at src/shared/gatt-client.c:711
1  0x000000000049b8cc in disc_att_send_op (data=0x7199b0)
   at src/shared/att.c:547
2  0x000000000049cb44 in disconnect_cb (io=<optimized out>,
                       user_data=0x716070) at src/shared/att.c:580
3  0x00000000004a6405 in watch_callback (channel=<optimized out>,
                      cond=<optimized out>, user_data=<optimized out>)
   at src/shared/io-glib.c:170
4  0x00007ffff78c704a in g_main_context_dispatch ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
5  0x00007ffff78c73f0 in ?? ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
6  0x00007ffff78c7712 in g_main_loop_run ()
   from /lib/x86_64-linux-gnu/libglib-2.0.so.0
7  0x000000000040c620 in main (argc=1, argv=0x7fffffffe5a8)
   at src/main.c:781

Change-Id: I6f0a0b1501761693ebdbd851773878e827cd6cce
src/shared/gatt-client.c