Skip to content

Commit 8360ea9

Browse files
Merge pull request #1103 from LedgerHQ/release_08_2025-rc2
Fix BLE issue when device name have 20 characters (FWEO-1477)
2 parents 58b87ee + 69a2313 commit 8360ea9

File tree

2 files changed

+6
-6
lines changed

2 files changed

+6
-6
lines changed

lib_blewbxx/src/ble_cmd.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ void ble_aci_gap_forge_cmd_clear_security_db(ble_cmd_data_t *cmd_data)
198198
void ble_aci_gap_forge_cmd_set_discoverable(ble_cmd_data_t *cmd_data,
199199
ble_cmd_set_discoverable_data_t *data)
200200
{
201-
if ((!cmd_data) || (!data) || (data->local_name_length > BLE_GAP_MAX_LOCAL_NAME_LENGTH)) {
201+
if ((!cmd_data) || (!data) || (data->local_name_length > (BLE_GAP_MAX_LOCAL_NAME_LENGTH+1))) {
202202
return;
203203
}
204204

@@ -217,9 +217,9 @@ void ble_aci_gap_forge_cmd_set_discoverable(ble_cmd_data_t *cmd
217217
cmd_data->hci_cmd_buffer[cmd_data->hci_cmd_buffer_length++] = data->own_address_type;
218218
// Advertising_Filter_Policy
219219
cmd_data->hci_cmd_buffer[cmd_data->hci_cmd_buffer_length++] = data->advertising_filter_policy;
220-
// Local_Name_Length
220+
// Local_Name_Length + 1 byte BLE_AD_TYPE_COMPLETE_LOCAL_NAME
221221
cmd_data->hci_cmd_buffer[cmd_data->hci_cmd_buffer_length++] = data->local_name_length;
222-
// Local_Name
222+
// Local_Name + 1 byte BLE_AD_TYPE_COMPLETE_LOCAL_NAME
223223
if (data->local_name_length && data->local_name) {
224224
memcpy(&cmd_data->hci_cmd_buffer[cmd_data->hci_cmd_buffer_length],
225225
data->local_name,

lib_blewbxx/src/ble_ledger.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -84,7 +84,7 @@ typedef struct ble_ledger_data_s {
8484
// General
8585
bool enabled;
8686
ble_state_t state;
87-
char device_name[BLE_GAP_MAX_LOCAL_NAME_LENGTH + 1];
87+
char device_name[BLE_GAP_MAX_LOCAL_NAME_LENGTH];
8888
char device_name_length;
8989
uint8_t random_address[BLE_CONFIG_DATA_RANDOM_ADDRESS_LEN];
9090
uint8_t nb_of_profile;
@@ -162,7 +162,7 @@ static void get_device_name(void)
162162
memset(ble_ledger_data.device_name, 0, sizeof(ble_ledger_data.device_name));
163163
ble_ledger_data.device_name_length = os_setting_get(OS_SETTING_DEVICENAME,
164164
(uint8_t *) ble_ledger_data.device_name,
165-
sizeof(ble_ledger_data.device_name) - 1);
165+
sizeof(ble_ledger_data.device_name));
166166
}
167167

168168
static void start_mngr(uint8_t *hci_buffer, uint16_t length)
@@ -226,7 +226,7 @@ static void start_mngr(uint8_t *hci_buffer, uint16_t length)
226226
ble_aci_gap_forge_cmd_init(&ble_ledger_data.cmd_data,
227227
BLE_GAP_PERIPHERAL_ROLE,
228228
BLE_GAP_PRIVACY_DISABLED,
229-
sizeof(ble_ledger_data.device_name) - 1);
229+
sizeof(ble_ledger_data.device_name));
230230
send_hci_packet(0);
231231
break;
232232

0 commit comments

Comments
 (0)