bluez5: fix a use-after-free on transport handle

'remove_dynamic_node()' reference transport after it got freed in 'spa_bt_transport_free()'.
This commit is contained in:
Huang-Huang Bao 2021-03-20 16:02:47 +08:00 committed by Wim Taymans
parent 03ea1a2177
commit 6512c2b5f6

View file

@ -1438,11 +1438,12 @@ void spa_bt_transport_free(struct spa_bt_transport *transport)
transport->device->connected_profiles &= ~transport->profile;
spa_list_remove(&transport->device_link);
}
free(transport->path);
free(transport);
if (device && device->connected_profiles != prev_connected)
spa_bt_device_emit_profiles_changed(device, device->profiles, prev_connected);
free(transport->path);
free(transport);
}
int spa_bt_transport_acquire(struct spa_bt_transport *transport, bool optional)