Bernhard Loos : mountmgr: Also call IoCompleteRequest in case of an error.

Alexandre Julliard julliard at winehq.org
Tue Nov 8 12:23:10 CST 2011


Module: wine
Branch: master
Commit: 79b93fff0b7f55e574aee636a92d7bbd8c8037ee
URL:    http://source.winehq.org/git/wine.git/?a=commit;h=79b93fff0b7f55e574aee636a92d7bbd8c8037ee

Author: Bernhard Loos <bernhardloos at 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,




More information about the wine-cvs mailing list