From: Luiz Augusto von Dentz <luiz.von.dentz@xxxxxxxxx> gatt_db_get_hash actually depends on crypto so platforms that don't have it enabled shall not register GATT_CHARAC_DB_HASH as otherwise it would cause a crash due to hash being NULL. --- src/gatt-database.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/gatt-database.c b/src/gatt-database.c index 8cbe09bae..d717bbcde 100644 --- a/src/gatt-database.c +++ b/src/gatt-database.c @@ -1211,10 +1211,14 @@ static void populate_gatt_service(struct btd_gatt_database *database) cli_feat_read_cb, cli_feat_write_cb, database); - bt_uuid16_create(&uuid, GATT_CHARAC_DB_HASH); - database->db_hash = gatt_db_service_add_characteristic(service, + + /* Only expose database hash chrc if supported */ + if (gatt_db_get_hash(database->db)) { + bt_uuid16_create(&uuid, GATT_CHARAC_DB_HASH); + database->db_hash = gatt_db_service_add_characteristic(service, &uuid, BT_ATT_PERM_READ, BT_GATT_CHRC_PROP_READ, db_hash_read_cb, NULL, database); + } /* Only enable EATT if there is a socket listening */ if (database->eatt_io) { -- 2.25.3