GATT service updates are not supported yet. This patch avoids a memory leak and GATT service storage corruption due to trying to register GATT services twice. After adding support for Services Changed characteristic notification (which is mandatory for GATT clients), this check can be removed. --- src/device.c | 8 ++++++++ 1 files changed, 8 insertions(+), 0 deletions(-) diff --git a/src/device.c b/src/device.c index b410a63..dfc8e59 100644 --- a/src/device.c +++ b/src/device.c @@ -1982,6 +1982,14 @@ int device_browse_primary(struct btd_device *device, DBusConnection *conn, if (device->browse) return -EBUSY; + /* FIXME: GATT service updates (implemented in update_services() for + * SDP) are not supported yet. It will be supported once client side + * "Services Changed" characteristic handling is implemented. */ + if (device->primaries) { + error("Could not update GATT services"); + return -ENOSYS; + } + req = g_new0(struct browse_req, 1); req->device = btd_device_ref(device); adapter_get_address(adapter, &src); -- 1.7.5.4 -- To unsubscribe from this list: send the line "unsubscribe linux-bluetooth" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html