Message ID | 20220921214656.2241730-1-luiz.dentz@gmail.com (mailing list archive) |
---|---|
State | Accepted |
Commit | fbf17ac497bb2e0077c4cfa22583439e157693fe |
Headers | show |
Series | [BlueZ,1/3] gatt: Fix not setting permissions for CCC | expand |
This is automated email and please do not reply to this email! Dear submitter, Thank you for submitting the patches to the linux bluetooth mailing list. This is a CI test results with your patch series: PW Link:https://patchwork.kernel.org/project/bluetooth/list/?series=679174 ---Test result--- Test Summary: CheckPatch PASS 3.42 seconds GitLint PASS 2.26 seconds Prep - Setup ELL PASS 26.17 seconds Build - Prep PASS 0.68 seconds Build - Configure PASS 8.15 seconds Build - Make PASS 740.85 seconds Make Check PASS 10.95 seconds Make Check w/Valgrind PASS 287.39 seconds Make Distcheck PASS 237.16 seconds Build w/ext ELL - Configure PASS 8.19 seconds Build w/ext ELL - Make PASS 83.30 seconds Incremental Build w/ patches PASS 294.92 seconds Scan Build WARNING 509.27 seconds Details ############################## Test: Scan Build - WARNING Desc: Run Scan Build with patches Output: ***************************************************************************** The bugs reported by the scan-build may or may not be caused by your patches. Please check the list and fix the bugs if they are caused by your patch. ***************************************************************************** src/gatt-database.c:1138:10: warning: Value stored to 'bits' during its initialization is never read uint8_t bits[] = { BT_GATT_CHRC_CLI_FEAT_ROBUST_CACHING, ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/gatt-database.c:3541:14: warning: Value stored to 'iface' during its initialization is never read const char *iface = g_dbus_proxy_get_interface(proxy); ^~~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ src/gatt-database.c:3542:14: warning: Value stored to 'path' during its initialization is never read const char *path = g_dbus_proxy_get_path(proxy); ^~~~ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ 3 warnings generated. --- Regards, Linux Bluetooth
Hello: This series was applied to bluetooth/bluez.git (master) by Luiz Augusto von Dentz <luiz.von.dentz@intel.com>: On Wed, 21 Sep 2022 14:46:54 -0700 you wrote: > From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> > > CCC shall always have both Read and Write permissions set in addition to > what application set. > > Fixes: https://github.com/bluez/bluez/issues/399 > > [...] Here is the summary with links: - [BlueZ,1/3] gatt: Fix not setting permissions for CCC https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=fbf17ac497bb - [BlueZ,2/3] gatt-db: Check if permissions are set when adding CCC https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=50782b0eeb05 - [BlueZ,3/3] client/gatt: Fix notification enabled/disabled output https://git.kernel.org/pub/scm/bluetooth/bluez.git/?id=c2734c41f7c0 You are awesome, thank you!
diff --git a/src/gatt-database.c b/src/gatt-database.c index 89a3dc47560b..a212dfc4e694 100644 --- a/src/gatt-database.c +++ b/src/gatt-database.c @@ -1238,7 +1238,8 @@ static void populate_gatt_service(struct btd_gatt_database *database) NULL, NULL, database); database->svc_chngd_ccc = service_add_ccc(service, database, NULL, NULL, - 0, NULL); + BT_ATT_PERM_READ | + BT_ATT_PERM_WRITE, NULL); bt_uuid16_create(&uuid, GATT_CHARAC_CLI_FEAT); database->cli_feat = gatt_db_service_add_characteristic(service, @@ -1726,8 +1727,10 @@ static bool parse_chrc_flags(DBusMessageIter *array, uint8_t *props, *perm |= BT_ATT_PERM_WRITE; } else if (!strcmp("notify", flag)) { *props |= BT_GATT_CHRC_PROP_NOTIFY; + *ccc_perm |= BT_ATT_PERM_WRITE; } else if (!strcmp("indicate", flag)) { *props |= BT_GATT_CHRC_PROP_INDICATE; + *ccc_perm |= BT_ATT_PERM_WRITE; } else if (!strcmp("authenticated-signed-writes", flag)) { *props |= BT_GATT_CHRC_PROP_AUTH; *perm |= BT_ATT_PERM_WRITE; @@ -2896,6 +2899,9 @@ static bool database_add_ccc(struct external_service *service, !(chrc->props & BT_GATT_CHRC_PROP_INDICATE)) return true; + /* Always set read/write permissions */ + chrc->ccc_perm |= BT_ATT_PERM_WRITE | BT_ATT_PERM_READ; + chrc->ccc = service_add_ccc(service->attrib, service->app->database, ccc_write_cb, chrc, chrc->ccc_perm, NULL); if (!chrc->ccc) {
From: Luiz Augusto von Dentz <luiz.von.dentz@intel.com> CCC shall always have both Read and Write permissions set in addition to what application set. Fixes: https://github.com/bluez/bluez/issues/399 --- src/gatt-database.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-)