mirror of
https://github.com/torvalds/linux.git
synced 2026-09-25 21:21:09 -04:00
When auxiliary_device_add() returns an error, auxiliary_device_uninit() is called, which causes refcount for device to be decremented and .release callback will be triggered. Because adev_release() re-calls auxiliary_device_uninit(), it will cause use-after-free: [ 1269.455172] WARNING: CPU: 0 PID: 14267 at lib/refcount.c:28 refcount_warn_saturate+0x110/0x15 [ 1269.464007] refcount_t: underflow; use-after-free. Reported-by: Jianglei Nie <[email protected]> Signed-off-by: Iwona Winiarska <[email protected]> Link: https://lore.kernel.org/r/[email protected]