diff options
author | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2020-06-03 10:31:59 -0700 |
---|---|---|
committer | Luiz Augusto von Dentz <luiz.von.dentz@intel.com> | 2020-06-03 13:04:38 -0700 |
commit | 41a5413023fa85bc711d461eb736a0624542df2d (patch) | |
tree | f1b6d6a4b0b67439a2bd0a5a8a9987dc25945617 /src/gatt-database.c | |
parent | 698ef6bbd9324dbd044903ed0f79020e31d70527 (diff) | |
download | bluez-41a5413023fa85bc711d461eb736a0624542df2d.tar.gz |
gatt: Fix possible crash when unable to generate hash
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.
Diffstat (limited to 'src/gatt-database.c')
-rw-r--r-- | src/gatt-database.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/gatt-database.c b/src/gatt-database.c index 8cbe09bae..95ba39897 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_hash_support(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) { |