Fix device_get_name() to null-terminate the name string it returns.
Modify all callers as needed.
product = btd_device_get_product(device);
device_get_name(device, name, sizeof(name));
- name[sizeof(name) - 1] = 0;
for (i = 0; i < G_N_ELEMENTS(wii_ids); ++i) {
if (vendor == wii_ids[i][0] && product == wii_ids[i][1])
idev->handle = rec->handle;
idev->disable_sdp = is_device_sdp_disable(rec);
- device_get_name(device, name, HCI_MAX_NAME_LENGTH);
+ device_get_name(device, name, sizeof(name));
if (strlen(name) > 0)
idev->name = g_strdup(name);
void device_get_name(struct btd_device *device, char *name, size_t len)
{
- strncpy(name, device->name, len);
+ if (name != NULL && len > 0) {
+ strncpy(name, device->name, len - 1);
+ name[len - 1] = '\0';
+ }
}
bool device_name_known(struct btd_device *device)