Activity log
- Created & dismissed (max. allowed matches exceeded) suggestion
gpib: fix double decrement of descriptor_busy in command_ioctl()
In the Linux kernel, the following vulnerability has been resolved: gpib: fix double decrement of descriptor_busy in command_ioctl() commit d1857f8296dc ("gpib: fix use-after-free in IO ioctl handlers") introduced a descriptor_busy reference counter to pin struct gpib_descriptor across IO ioctl operations. In command_ioctl(), the error path inside the loop decrements descriptor_busy and breaks, but execution then falls through to the unconditional decrement after the loop, underflowing the counter to -1. This re-enables the use-after-free that the original fix was meant to prevent: a concurrent close_dev_ioctl() sees descriptor_busy == 0 on an actively-used descriptor and frees it. Remove the early decrement from the error path. The post-loop decrement already handles all exit paths, matching the correct pattern used in read_ioctl() and write_ioctl().
References
Affected products
- ==28c75dd143ead62e0dfac564c79d251e21d5d74b
- <8b5f1d295dda8677e4545ce340053fcfa8b634c7
- <6.20
- =<*
- ==7.0
- <fdee9f207a48ce204ec6cfceaa1459d2473600a5
- <6.18.40
- <7.0
- =<6.18.*
- =<7.1.*
- <c4faab452b3c1ada003d49c477609dd80523b9bf