Module: wine Branch: master Commit: 79b93fff0b7f55e574aee636a92d7bbd8c8037ee URL: http://source.winehq.org/git/wine.git/?a=commit;h=79b93fff0b7f55e574aee636a9...
Author: Bernhard Loos bernhardloos@googlemail.com Date: Tue Nov 1 13:03:22 2011 +0100
mountmgr: Also call IoCompleteRequest in case of an error.
---
dlls/mountmgr.sys/mountmgr.c | 15 ++++++++++++--- 1 files changed, 12 insertions(+), 3 deletions(-)
diff --git a/dlls/mountmgr.sys/mountmgr.c b/dlls/mountmgr.sys/mountmgr.c index afb9d92..5cf1017 100644 --- a/dlls/mountmgr.sys/mountmgr.c +++ b/dlls/mountmgr.sys/mountmgr.c @@ -374,7 +374,10 @@ static NTSTATUS WINAPI mountmgr_ioctl( DEVICE_OBJECT *device, IRP *irp ) { case IOCTL_MOUNTMGR_QUERY_POINTS: if (irpsp->Parameters.DeviceIoControl.InputBufferLength < sizeof(MOUNTMGR_MOUNT_POINT)) - return STATUS_INVALID_PARAMETER; + { + irp->IoStatus.u.Status = STATUS_INVALID_PARAMETER; + break; + } irp->IoStatus.u.Status = query_mount_points( irp->AssociatedIrp.SystemBuffer, irpsp->Parameters.DeviceIoControl.InputBufferLength, irpsp->Parameters.DeviceIoControl.OutputBufferLength, @@ -382,14 +385,20 @@ static NTSTATUS WINAPI mountmgr_ioctl( DEVICE_OBJECT *device, IRP *irp ) break; case IOCTL_MOUNTMGR_DEFINE_UNIX_DRIVE: if (irpsp->Parameters.DeviceIoControl.InputBufferLength < sizeof(struct mountmgr_unix_drive)) - return STATUS_INVALID_PARAMETER; + { + irp->IoStatus.u.Status = STATUS_INVALID_PARAMETER; + break; + } irp->IoStatus.Information = 0; irp->IoStatus.u.Status = define_unix_drive( irp->AssociatedIrp.SystemBuffer, irpsp->Parameters.DeviceIoControl.InputBufferLength ); break; case IOCTL_MOUNTMGR_QUERY_UNIX_DRIVE: if (irpsp->Parameters.DeviceIoControl.InputBufferLength < sizeof(struct mountmgr_unix_drive)) - return STATUS_INVALID_PARAMETER; + { + irp->IoStatus.u.Status = STATUS_INVALID_PARAMETER; + break; + } irp->IoStatus.u.Status = query_unix_drive( irp->AssociatedIrp.SystemBuffer, irpsp->Parameters.DeviceIoControl.InputBufferLength, irpsp->Parameters.DeviceIoControl.OutputBufferLength,