hidclass.sys: Return error on invalid write buffer size.
Signed-off-by: Rémi Bernon <rbernon@codeweavers.com> Signed-off-by: Zebediah Figura <zfigura@codeweavers.com> Signed-off-by: Alexandre Julliard <julliard@winehq.org>
This commit is contained in:
parent
e63bd6db23
commit
881b2d6583
|
@ -703,6 +703,20 @@ NTSTATUS WINAPI pdo_write(DEVICE_OBJECT *device, IRP *irp)
|
|||
return STATUS_DELETE_PENDING;
|
||||
}
|
||||
|
||||
if (!irpsp->Parameters.Write.Length)
|
||||
{
|
||||
irp->IoStatus.Status = STATUS_INVALID_USER_BUFFER;
|
||||
IoCompleteRequest( irp, IO_NO_INCREMENT );
|
||||
return irp->IoStatus.Status;
|
||||
}
|
||||
|
||||
if (irpsp->Parameters.Write.Length < data->caps.OutputReportByteLength)
|
||||
{
|
||||
irp->IoStatus.Status = STATUS_INVALID_PARAMETER;
|
||||
IoCompleteRequest( irp, IO_NO_INCREMENT );
|
||||
return irp->IoStatus.Status;
|
||||
}
|
||||
|
||||
irp->IoStatus.Information = 0;
|
||||
|
||||
TRACE_(hid_report)("Device %p Buffer length %i Buffer %p\n", device, irpsp->Parameters.Write.Length, irp->AssociatedIrp.SystemBuffer);
|
||||
|
|
Loading…
Reference in New Issue