]> git.ipfire.org Git - thirdparty/linux.git/commit
Bluetooth: MGMT: Fix dangling pointer on mgmt_add_adv_patterns_monitor_complete
authorLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Mon, 16 Mar 2026 19:03:27 +0000 (15:03 -0400)
committerLuiz Augusto von Dentz <luiz.von.dentz@intel.com>
Thu, 19 Mar 2026 18:42:57 +0000 (14:42 -0400)
commit5f5fa4cd35f707344f65ce9e225b6528691dbbaa
tree85a39e4c6b5db47768fea5749c9838d7549b33bb
parent598dbba9919c5e36c54fe1709b557d64120cb94b
Bluetooth: MGMT: Fix dangling pointer on mgmt_add_adv_patterns_monitor_complete

This fixes the condition checking so mgmt_pending_valid is executed
whenever status != -ECANCELED otherwise calling mgmt_pending_free(cmd)
would kfree(cmd) without unlinking it from the list first, leaving a
dangling pointer. Any subsequent list traversal (e.g.,
mgmt_pending_foreach during __mgmt_power_off, or another
mgmt_pending_valid call) would dereference freed memory.

Link: https://lore.kernel.org/linux-bluetooth/20260315132013.75ab40c5@kernel.org/T/#m1418f9c82eeff8510c1beaa21cf53af20db96c06
Fixes: 302a1f674c00 ("Bluetooth: MGMT: Fix possible UAFs")
Signed-off-by: Luiz Augusto von Dentz <luiz.von.dentz@intel.com>
Reviewed-by: Paul Menzel <pmenzel@molgen.mpg.de>
net/bluetooth/mgmt.c