'kernel32_test loader' causes BSOD on XP SP1

Dmitry Timoshkov dmitry at codeweavers.com
Mon Nov 5 05:03:24 CST 2007


"Francois Gouget" <fgouget at free.fr> wrote:

> So I'm running tests in an XP SP1 VM and yet, you can see no such 
> results on http://test.winehq.org/data/. The reason for is that the 
> 'kernel32_test loader' causes XP SP1 to crash, so that winetest.exe 
> never has an opportunity to send the results.
> 
> So I investigated this and the specific test that causes the crash is 
> this one:
> 
>         { &dos_header, sizeof(dos_header),
>           1, sizeof(IMAGE_OPTIONAL_HEADER), 0x200, 0x200,
>          sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER) + 0x1000,
>           sizeof(dos_header) + sizeof(nt_header) + sizeof(IMAGE_SECTION_HEADER),
>           ERROR_SUCCESS
>         },
> 
> I noticed the 0x1000. Shouldn't this be a 0x200? Or is that the whole 
> point of this test? In any case, changing it to 0x200 avoids crashing 
> SP1.
> 
> Another weird way to avoid the crash is to introduce a Sleep(1000) just 
> before the LoadLibrary().
> 
> I've summed up both ways to avoid the crash in the patch below. 
> Hopefully someone more familiar with the loader than me can have a look 
> into this and suggest a proper fix.

A proper fix would be either to remove that particular test altogether, or
replace 0x1000 by 0x200.

-- 
Dmitry.



More information about the wine-devel mailing list