Zebediah Figura : ntoskrnl.exe: Always set the IRP return size.

Alexandre Julliard julliard at winehq.org
Wed Aug 7 15:36:22 CDT 2019


Module: wine
Branch: master
Commit: dfc7132f50321dd9117930020c5fc670c905ddba
URL:    https://source.winehq.org/git/wine.git/?a=commit;h=dfc7132f50321dd9117930020c5fc670c905ddba

Author: Zebediah Figura <z.figura12 at gmail.com>
Date:   Tue Aug  6 22:48:43 2019 -0500

ntoskrnl.exe: Always set the IRP return size.

Signed-off-by: Zebediah Figura <z.figura12 at gmail.com>
Signed-off-by: Alexandre Julliard <julliard at winehq.org>

---

 dlls/ntoskrnl.exe/ntoskrnl.c       | 2 +-
 dlls/ntoskrnl.exe/tests/ntoskrnl.c | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/dlls/ntoskrnl.exe/ntoskrnl.c b/dlls/ntoskrnl.exe/ntoskrnl.c
index 92f9afa..40c18d8 100644
--- a/dlls/ntoskrnl.exe/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/ntoskrnl.c
@@ -438,9 +438,9 @@ static NTSTATUS WINAPI dispatch_irp_completion( DEVICE_OBJECT *device, IRP *irp,
     {
         req->handle   = wine_server_obj_handle( irp_handle );
         req->status   = irp->IoStatus.u.Status;
+        req->size     = irp->IoStatus.Information;
         if (irp->IoStatus.u.Status >= 0)
         {
-            req->size = irp->IoStatus.Information;
             if (out_buff) wine_server_add_data( req, out_buff, irp->IoStatus.Information );
         }
         status = wine_server_call( req );
diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
index c701cf2..e7a8cc9 100644
--- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
@@ -445,7 +445,7 @@ static void test_return_status(void)
     ok(!ret, "ioctl succeeded\n");
     ok(GetLastError() == ERROR_MR_MID_NOT_FOUND, "got error %u\n", GetLastError());
     todo_wine ok(!strcmp(buffer, "ghidef"), "got buffer %s\n", buffer);
-    todo_wine ok(ret_size == 3, "got size %u\n", ret_size);
+    ok(ret_size == 3, "got size %u\n", ret_size);
 
     strcpy(buffer, "abcdef");
     status = 0xceadbeef;
@@ -455,7 +455,7 @@ static void test_return_status(void)
     ok(!ret, "ioctl succeeded\n");
     ok(GetLastError() == ERROR_MR_MID_NOT_FOUND, "got error %u\n", GetLastError());
     ok(!strcmp(buffer, "abcdef"), "got buffer %s\n", buffer);
-    todo_wine ok(ret_size == 3, "got size %u\n", ret_size);
+    ok(ret_size == 3, "got size %u\n", ret_size);
 }
 
 static void test_driver3(void)




More information about the wine-cvs mailing list