summaryrefslogtreecommitdiff
path: root/include/linux/timerqueue_types.h
diff options
context:
space:
mode:
authorPauli Virtanen <pav@iki.fi>2026-07-24 23:20:34 +0300
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>2026-07-28 16:13:12 -0400
commitaf24e338bf5dafb80f42baa9a0b9e9b57b1c5d9c (patch)
tree1d24d613833250bfdc4644d77ac40ae02a356b4a /include/linux/timerqueue_types.h
parentfdfde532ab1caa165fcd8985001157ac8b4db365 (diff)
Bluetooth: ISO: fix race of kfree vs kref_get_unless_zero
hci_conn::iso_data is accessed and modified without lock or RCU. This leads to a race [Task hdev->workqueue] [Task 2] iso_recv iso_conn_put(conn) conn = LOAD hcon->iso_data iso_conn_free(conn) iso_conn_hold_unless_zero(conn) hcon->iso_data = NULL kfree(conn) kref_get_unless_zero(&conn->ref) /* UAF */ and also to races in iso_conn_add() vs. iso_conn_free(). Fix by adding spinlock hci_conn::proto_lock and using it to guard hci_conn::iso_data. Fixes: dc26097bdb86 ("Bluetooth: ISO: Use kref to track lifetime of iso_conn") Signed-off-by: Pauli Virtanen <pav@iki.fi> Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Diffstat (limited to 'include/linux/timerqueue_types.h')
0 files changed, 0 insertions, 0 deletions