mirror of
https://git.kernel.org/pub/scm/bluetooth/bluez.git
synced 2024-12-18 08:24:02 +08:00
add hog ref before adding to instances
To avoid a double hog free, need to add a ref when adding the hog to the slist. This bug has been reproduced with gamepad-8718 which was connecting/disconnecting frantically. Fix also a typo in the method hog_attach_instance
This commit is contained in:
parent
86fbb15cb7
commit
71b5dbc704
@ -1357,7 +1357,7 @@ static struct bt_hog *hog_new(int fd, const char *name, uint16_t vendor,
|
||||
return hog;
|
||||
}
|
||||
|
||||
static void hog_attach_instace(struct bt_hog *hog,
|
||||
static void hog_attach_instance(struct bt_hog *hog,
|
||||
struct gatt_db_attribute *attr)
|
||||
{
|
||||
struct bt_hog *instance;
|
||||
@ -1373,14 +1373,14 @@ static void hog_attach_instace(struct bt_hog *hog,
|
||||
if (!instance)
|
||||
return;
|
||||
|
||||
hog->instances = g_slist_append(hog->instances, instance);
|
||||
hog->instances = g_slist_append(hog->instances, bt_hog_ref(instance));
|
||||
}
|
||||
|
||||
static void foreach_hog_service(struct gatt_db_attribute *attr, void *user_data)
|
||||
{
|
||||
struct bt_hog *hog = user_data;
|
||||
|
||||
hog_attach_instace(hog, attr);
|
||||
hog_attach_instance(hog, attr);
|
||||
}
|
||||
|
||||
static void dis_notify(uint8_t source, uint16_t vendor, uint16_t product,
|
||||
|
Loading…
Reference in New Issue
Block a user