From 66f8a3960ee117e36138e5857269fe2528406cdf Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Fri, 21 Jul 2017 17:55:29 -0700 Subject: binding: bluetooth: lock around BluetoothManage.inited flag inited flag could be written during a read, and this should be prevented via a mutex. Bug-AGL: SPEC-768 Change-Id: Ie8ff57e931b3c9d73b52c6c6082100cb620ca9d8 Signed-off-by: Matt Ranostay --- binding-bluetooth/bluetooth-manager.c | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/binding-bluetooth/bluetooth-manager.c b/binding-bluetooth/bluetooth-manager.c index 007986c..24312c2 100644 --- a/binding-bluetooth/bluetooth-manager.c +++ b/binding-bluetooth/bluetooth-manager.c @@ -38,12 +38,20 @@ static FILE *logfp= NULL; /* ------ LOCAL FUNCTIONS --------- */ void BluetoothManage_InitFlag_Set(gboolean value) { + g_mutex_lock(&(BluetoothManage.m)); BluetoothManage.inited = value; + g_mutex_unlock(&(BluetoothManage.m)); } gboolean BluetoothManage_InitFlag_Get(void) { - return BluetoothManage.inited; + gboolean inited; + + g_mutex_lock(&(BluetoothManage.m)); + inited = BluetoothManage.inited; + g_mutex_unlock(&(BluetoothManage.m)); + + return inited; } void devices_list_lock(void) @@ -976,7 +984,7 @@ static void *bt_event_loop_thread() devices_list_update(); - BluetoothManage.inited = TRUE; + BluetoothManage_InitFlag_Set(TRUE); LOGD("g_main_loop_run\n"); g_main_loop_run(cli.clientloop); -- cgit 1.2.3-korg