accel/rocket: clear rdev on device init failure
Impact
In the Linux kernel, the following vulnerability has been resolved:
Source excerpt · LinuxAffected packages
Affected products
Vendor version evidence. Product records are separate from automatic dependency matching.
Linux · Linux
Other versions: unaffected
| Version / range | Source status |
|---|---|
| ed98261b41687323ffa02ca20fef1e60b38fd1aa to before 79071b67182e1b352d51a3917729b8d424710b49 | affected |
| ed98261b41687323ffa02ca20fef1e60b38fd1aa to before dd47a6c920083b069f00f0920e4566915a6aec46 | affected |
| ed98261b41687323ffa02ca20fef1e60b38fd1aa to before 4ac852419f0d317c7bd8db5b8acb3cc78be7fe33 | affected |
Linux · Linux
Other versions: affected
| Version / range | Source status |
|---|---|
| 6.18 | affected |
| 0 to before 6.18 | unaffected |
| 6.18.59 through 6.18.* (inclusive) | unaffected |
| 7.2.13 through 7.2.* (inclusive) | unaffected |
| 7.3 through * (inclusive) | unaffected |
Original source description
In the Linux kernel, the following vulnerability has been resolved:
accel/rocket: clear rdev on device init failure
rocket_probe() stores the return value from rocket_device_init() in the file-scoped rdev pointer before checking whether it is an error pointer. If rocket_device_init() fails, rdev is left as an ERR_PTR.
The rdev pointer is also used as the marker for whether the shared rocket device has already been initialized. A later core probe can therefore see a non-NULL rdev, skip rocket_device_init(), and dereference the error pointer when reading rdev->num_cores.
Save the error code and clear rdev before returning from the rocket_device_init() failure path.