From d3f64e9c21a3743c3b8fb36e4524a030945e3333 Mon Sep 17 00:00:00 2001 From: DoHyun Pyun Date: Wed, 6 May 2020 07:48:20 +0900 Subject: [PATCH] Fix bt-service crash issue in testhub Double free problem is occured into le scanner app termination function. So this patchset adds the condition to fix it. Change-Id: Ie76ed72ce6333bd5a0aea84dd9756b7eb4edb042 Signed-off-by: DoHyun Pyun --- .../services/adapter/bt-service-core-adapter-le.c | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c b/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c index 6be2303..5f146f3 100644 --- a/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c +++ b/bt-service-adaptation/services/adapter/bt-service-core-adapter-le.c @@ -2136,14 +2136,16 @@ void _bt_check_le_scanner_app_termination(const char *sender) if (!scanner) return; - if (scanner->is_scanning) - _bt_stop_le_scan(sender); - _bt_bm_remove_scan_app(SCAN_LE, scanner->uid, scanner->pid); + if (scanner->is_scanning) { + /* Free 'scanner' into the function */ + if (_bt_stop_le_scan(sender) != BLUETOOTH_ERROR_NOT_IN_OPERATION) + return; + } + scanner_list = g_slist_remove(scanner_list, scanner); - g_free(scanner->sender); - g_free(scanner); + __bt_free_le_scanner(scanner); } int _bt_service_le_init(void) -- 2.7.4