In the Linux kernel, the following vulnerability has been resolved:
Input: synaptics-rmi4 - zero report size on F54 work error
In rmif54work(), if an error occurs during report request or command verification, the code jumped directly to the 'error' label, bypassing the 'abort' label where f54->report_size was normally zeroed out.
This left f54->reportsize containing its previous successful payload size. If a user then altered the V4L2 format to a smaller size, and a subsequent run failed, rmif54bufferqueue() would copy the stale, larger payload size into the shrunken V4L2 buffer, causing a heap buffer overflow.
Fix this by merging the 'abort' and 'error' labels into a single 'out' exit path, and ensuring that f54->reportsize is always set to 0 on failure by checking for error and zeroing the local reportsize first.