From 077c4b9178258ea34e715c0467b8549a6f7bee45 Mon Sep 17 00:00:00 2001 From: Luiz Augusto von Dentz Date: Wed, 30 Jan 2019 15:24:18 +0200 Subject: [PATCH] client: Don't expose pointer value in attribute path Instead use the position in the list to create a unique path: [bluetooth]# register-service 0x1820 [NEW] Primary Service (Handle 0x0000) /org/bluez/app/service0 0x1820 Internet Protocol Support Change-Id: I79485003fd2b645ff5e8698c98f52ba4ae9ce8cd Signed-off-by: himanshu --- client/gatt.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/client/gatt.c b/client/gatt.c index 9a43c34..6d30aa4 100755 --- a/client/gatt.c +++ b/client/gatt.c @@ -1448,7 +1448,8 @@ void gatt_register_service(DBusConnection *conn, GDBusProxy *proxy, service = g_new0(struct service, 1); service->conn = conn; service->uuid = g_strdup(argv[1]); - service->path = g_strdup_printf("%s/service%p", APP_PATH, service); + service->path = g_strdup_printf("%s/service%u", APP_PATH, + g_list_length(local_services)); service->primary = primary; if (argc > 2) @@ -2329,7 +2330,8 @@ void gatt_register_chrc(DBusConnection *conn, GDBusProxy *proxy, chrc = g_new0(struct chrc, 1); chrc->service = service; chrc->uuid = g_strdup(argv[1]); - chrc->path = g_strdup_printf("%s/chrc%p", service->path, chrc); + chrc->path = g_strdup_printf("%s/chrc%u", service->path, + g_list_length(service->chrcs)); chrc->flags = g_strsplit(argv[2], ",", -1); chrc->authorization_req = attr_authorization_flag_exists(chrc->flags); @@ -2599,7 +2601,8 @@ void gatt_register_desc(DBusConnection *conn, GDBusProxy *proxy, desc = g_new0(struct desc, 1); desc->chrc = g_list_last(service->chrcs)->data; desc->uuid = g_strdup(argv[1]); - desc->path = g_strdup_printf("%s/desc%p", desc->chrc->path, desc); + desc->path = g_strdup_printf("%s/desc%u", desc->chrc->path, + g_list_length(desc->chrc->descs)); desc->flags = g_strsplit(argv[2], ",", -1); if (argc > 3) -- 2.7.4