Deinitialize gatt server properly 65/199965/1 accepted/tizen/unified/20190219.154249 submit/tizen/20190218.033542
authorinjun.yang <injun.yang@samsung.com>
Thu, 3 Jan 2019 03:42:56 +0000 (12:42 +0900)
committerSeungyoun Ju <sy39.ju@samsung.com>
Mon, 18 Feb 2019 02:55:28 +0000 (11:55 +0900)
[Problem] register gatt server -> BT off -> unregister gatt server ->
 BT on -> register gatt server -> crash
[Cause & Measure] After BT disabled, gatt server is not deinitialized properly.

Change-Id: Iadc0fb7764a9d87f8e22824233e404a248f130e7

bt-api/bt-gatt-service.c

index e39c3a0..5f4f4eb 100644 (file)
@@ -1566,12 +1566,17 @@ BT_EXPORT_API int bluetooth_gatt_unregister_application(void)
                        if (err != NULL) {
                                BT_ERR("D-Bus API failure: errCode[%x], message[%s]",
                                                err->code, err->message);
+                               if (err->code == G_DBUS_ERROR_SERVICE_UNKNOWN) {
+                                       g_clear_error(&err);
+                                       goto done;
+                               }
                                g_clear_error(&err);
                        }
                        return BLUETOOTH_ERROR_INTERNAL;
                }
                g_variant_unref(ret);
 
+done:
                is_server_started = false;
 
                BT_INFO("UnregisterApplication is completed");