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:
Stéphane Cerveau 2020-04-20 20:40:29 +02:00 committed by Luiz Augusto von Dentz
parent 86fbb15cb7
commit 71b5dbc704

View File

@ -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,