- Fix buffer overflow if mouse packets are arriving faster than we can

pass them to the callback.

svn path=/trunk/; revision=5231
This commit is contained in:
David Welch 2003-07-23 19:15:40 +00:00
parent 6e6bff4228
commit e891a5adeb

View file

@ -69,6 +69,9 @@ ps2_mouse_handler(PKINTERRUPT Interrupt, PVOID ServiceContext)
DeviceExtension = (PDEVICE_EXTENSION)DeviceObject->DeviceExtension;
Queue = DeviceExtension->ActiveQueue % 2;
/* Reset the buffer state. */
mouse_buffer_position = 0;
/* Prevent buffer overflow */
if (DeviceExtension->InputDataCount[Queue] == MOUSE_BUFFER_SIZE)
{
@ -76,9 +79,7 @@ ps2_mouse_handler(PKINTERRUPT Interrupt, PVOID ServiceContext)
}
Input = &DeviceExtension->MouseInputData[Queue]
[DeviceExtension->InputDataCount[Queue]];
mouse_buffer_position = 0;
[DeviceExtension->InputDataCount[Queue]];
/* Determine the current state of the buttons */
Input->RawButtons = (mouse_buffer[0] & 1) /* * GPM_B_LEFT */ +