RFC ntoskrnl.exe:ntoskrnl crashes 32-bit Vista

Francois Gouget fgouget at codeweavers.com
Mon Nov 30 08:48:37 CST 2020


ntoskrnl.exe:ntoskrnl causes the wvista VM to crash. More specifically 
it happens in test_driver4() on this line:

    device = CreateFileA("\\\\.\\WineTestDriver4", 0, 0, NULL, OPEN_EXISTING, 0, NULL);

which presumably is what triggers loading our driver so that makes 
sense (the patch below can be used to confirm this). The BSOD says:

    *** STOP: 0x0000008E (0xC000005,0x956E4AA0,0x922E0AAC,0x00000000)
    *** dri19512.tmp - Address 956E4AA0 bqse at 956E3000, DateStamp 5fc03305

So likely a NULL pointer dereference. Could this be because of a bug in 
our test driver?

For now I've set the TestBot so wvista runs WineTest wihout elevated 
privileges which causes it to skip this test: that's the wvistaadm 
variant.

The other datapoint is that the wvistau64 VM does not crash when running 
the 64-bit test but I don't know if that's because of the bitness or 
some other subtle Windows version difference.

wvista crash (truncated report, network connection loss, screenshot):
https://testbot.winehq.org/JobDetails.pl?Key=82678#k101

wvistau64 not crashing:
https://testbot.winehq.org/JobDetails.pl?Key=82680#k101



diff --git a/dlls/ntoskrnl.exe/tests/ntoskrnl.c b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
index c2285aef6fc..00b845dcb0e 100644
--- a/dlls/ntoskrnl.exe/tests/ntoskrnl.c
+++ b/dlls/ntoskrnl.exe/tests/ntoskrnl.c
@@ -702,6 +702,7 @@ static void test_driver4(void)
         DeleteFileA(filename);
         return;
     }
+    exit(0);
 
     device = CreateFileA("\\\\.\\WineTestDriver4", 0, 0, NULL, OPEN_EXISTING, 0, NULL);
     ok(device != INVALID_HANDLE_VALUE, "failed to open device: %u\n", GetLastError());


-- 
Francois Gouget <fgouget at codeweavers.com>




More information about the wine-devel mailing list