In the Linux kernel, the following vulnerability has been resolved:
HID: roccat: free buffered reports when destroying device
roccat_report_event() duplicates each report with kmemdup() and stores
the allocation in a circular-buffer slot. The allocation is released only
when that slot is reused. The device destruction paths free struct roccat_device without releasing
reports still stored in cbuf[].
This makes those allocations unreachable
and leaks up to ROCCAT_CBUF_SIZE report buffers per device. Add a small destructor that frees every buffered report before freeing the
device, and use it in both paths that can destroy a registered device.