summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorNick Pelly <>2009-03-31 14:28:51 -0700
committerThe Android Open Source Project <initial-contribution@android.com>2009-03-31 14:28:51 -0700
commitca75519d782909d11c032fc5e295622f0aa2e6c8 (patch)
treecf727f366d460f1f252883388edc9fcb60dd208d
parentc46b54a59ed5d8cd25b83b962bf583c4e9c9f9f8 (diff)
downloadbluez-ca75519d782909d11c032fc5e295622f0aa2e6c8.tar.gz
AI 143774: Fix SIGSEGV attempting to make callback on freed session.android-sdk-1.5-pre
pid: 3290, tid: 3290 >>> /system/bin/hcid <<< signal 11 (SIGSEGV), fault addr 0000001a r0 00014c70 r1 00000000 r2 bea74a80 r3 00000014 r4 00000450 r5 00014c70 r6 0000001b r7 0000008a r8 000003e8 r9 00010a90 10 000135b0 fp 00000000 ip aed141c0 sp bea74a80 lr aed05611 pc 0000001a Stack Trace: RELADDR FUNCTION FILE:LINE 0000560e finalize_discovery external/bluez/utils/audio/avdtp.c:851 00006ee2 connection_lost external/bluez/utils/audio/avdtp.c:889 00007226 disconnect_timeout external/bluez/utils/audio/avdtp.c:594 00021804 timeout_handlers_check external/bluez/utils/eglib/gmain.c:456 000219d2 g_main_loop_run external/bluez/utils/eglib/gmain.c:557 v------> main external/bluez/utils/hcid/main.c:979 00019dc2 .text external/bluez/utils/hcid/main.c:979 0001fd22 __libc_init_common bionic/libc/bionic/libc_init_common.c:121 0000bcb2 __libc_init bionic/libc/bionic/libc_init_dynamic.c:65 v------> link_image bionic/linker/linker.c:1637 b000157e __dl_$t bionic/linker/linker.c:1637 BUG=1749718 Automated import of CL 143774
-rw-r--r--utils/audio/avdtp.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/utils/audio/avdtp.c b/utils/audio/avdtp.c
index 12fc700d..e0429f31 100644
--- a/utils/audio/avdtp.c
+++ b/utils/audio/avdtp.c
@@ -583,6 +583,11 @@ static gboolean disconnect_timeout(gpointer user_data)
assert(session->ref == 1);
+ if (!g_slist_find(sessions, session)) {
+ error("disconnect_timeout called after session was freed");
+ return FALSE;
+ }
+
session->dc_timer = 0;
stream_setup = session->stream_setup;
session->stream_setup = FALSE;