From a9ebba6823daffbc706701a7127b9411c3f2224a Mon Sep 17 00:00:00 2001 From: Archie Pusaka Date: Thu, 5 Nov 2020 14:40:33 +0800 Subject: [PATCH] audio: unref session when failed to setup There is a possibility to miss unref-ing when source/sink fails at setup. Signed-off-by: Anuj Jain Signed-off-by: Ayush Garg --- profiles/audio/sink.c | 5 ++++- profiles/audio/source.c | 5 ++++- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/profiles/audio/sink.c b/profiles/audio/sink.c index 6c6b7fe..d314ca9 100755 --- a/profiles/audio/sink.c +++ b/profiles/audio/sink.c @@ -268,8 +268,11 @@ gboolean sink_setup_stream(struct btd_service *service, struct avdtp *session) sink->connect_id = a2dp_discover(sink->session, discovery_complete, sink); - if (sink->connect_id == 0) + if (sink->connect_id == 0) { + avdtp_unref(sink->session); + sink->session = NULL; return FALSE; + } return TRUE; } diff --git a/profiles/audio/source.c b/profiles/audio/source.c index fca85d4..c706c92 100755 --- a/profiles/audio/source.c +++ b/profiles/audio/source.c @@ -259,8 +259,11 @@ gboolean source_setup_stream(struct btd_service *service, source->connect_id = a2dp_discover(source->session, discovery_complete, source); - if (source->connect_id == 0) + if (source->connect_id == 0) { + avdtp_unref(source->session); + source->session = NULL; return FALSE; + } return TRUE; } -- 2.7.4