On Wed, 2019-05-29 at 10:47 +0100, Huw Davies wrote:
On Tue, May 28, 2019 at 12:15:15PM +0200, Rémi Bernon wrote:
Signed-off-by: Rémi Bernon rbernon@codeweavers.com
dlls/kernel32/tests/virtual.c | 5 +++++ 1 file changed, 5 insertions(+)
diff --git a/dlls/kernel32/tests/virtual.c b/dlls/kernel32/tests/virtual.c index 1778509d2ac..79eed345910 100644 --- a/dlls/kernel32/tests/virtual.c +++ b/dlls/kernel32/tests/virtual.c @@ -442,6 +442,11 @@ static void test_VirtualAlloc(void) addr2 = VirtualAlloc(addr1, 0x1000, MEM_RESERVE | MEM_COMMIT, PAGE_EXECUTE_READWRITE); ok(addr2 == addr1, "VirtualAlloc returned %p, expected %p\n", addr2, addr1);
- /* size_ptr should not be NULL */
- status = pNtAllocateVirtualMemory(GetCurrentProcess(), NULL,
0, NULL,
MEM_RESERVE | MEM_COMMIT,
PAGE_EXECUTE_READWRITE);
- ok(status == STATUS_ACCESS_VIOLATION, "NtAllocateVirtualMemory
returned %08x\n", status);
- /* allocation conflicts because of 64k align */ size = 0x1000; addr2 = (char *)addr1 + 0x1000;
Adding these sort of parameter checking tests (and implementing their behaviour) is generally not useful. Please wait until you find an application which relies on this (I suspect it'll be a long wait!).
But also this causes the tests to crash. You should test the tests after each patch in the series.
../../../tools/runtest -q -P wine -T ../../.. -M kernel32.dll -p kernel32_test.exe virtual && touch virtual.ok wine: Unhandled page fault on read access to 0x00000000 at address 0x7bcc4a86 (thread 0009), starting debugger... Unhandled exception: page fault on read access to 0x00000000 in 32- bit code (0x7bcc4a86). Register dump: CS:0023 SS:002b DS:002b ES:002b FS:0063 GS:006b EIP:7bcc4a86 ESP:0096fa50 EBP:0096fba8 EFLAGS:00010206( R- -- I - -P- ) EAX:00000040 EBX:ffffffff ECX:00000000 EDX:00635ffc ESI:00000000 EDI:00003000 Stack dump: 0x0096fa50: 00000000 00000021 0096fb48 7bcc549b 0x0096fa60: 7bd23260 00000000 0096fb48 00000000 0x0096fa70: 00000000 00a30000 0096fb98 00000000 0x0096fa80: 00000000 00000000 0096fb78 7bcc53ba 0x0096fa90: 00000058 0096fadc 0096fab4 00000007 0x0096faa0: 00000004 00230000 0096fbc8 00000000 Backtrace: =>0 0x7bcc4a86 NtAllocateVirtualMemory+0x36(process=<is not available>, ret=<is not available>, zero_bits=<is not available>, size_ptr=<is not available>, type=<is not available>, protect=<is not available>) [/home/daviesh/wine/dlls/ntdll/virtual.c:2466] in ntdll (0x0096fba8) 1 0x005035df test_VirtualAlloc+0x1e1e() [/home/daviesh/wine/dlls/kernel32/tests/virtual.c:446] in kernel32_test (0x0096fc38) 2 0x0050ff5b func_virtual+0x130a() [/home/daviesh/wine/dlls/kernel32/tests/virtual.c:4521] in kernel32_test (0x0096fd28) 3 0x0051f74d main+0x2ac(argc=<is not available>, argv=<is not available>) [/home/daviesh/wine/dlls/kernel32/tests/../../../include/wine/test.h: 617] in kernel32_test (0x0096fdf8) 4 0x004013e3 buf+0x4013e2() in kernel32_test (0x0096fed0) 5 0x7b481c32 call_process_entry+0x11() in kernel32 (0x0096fee8) 6 0x7b483d24 start_process+0x163(entry=<is not available>, peb=<is not available>) [/home/daviesh/wine/dlls/kernel32/process.c:1257] in kernel32 (0x0096ffd8) 7 0x7b481c3e start_process_wrapper+0x9() in kernel32 (0x0096ffec)
Huw.
Alright. About the crash, it mainly depends on the order of the patch set as it's fixed in the next patch. I'm not sure how the order should be in general (or should tests + fixes be mixed in a single patch?).
Rémi.