On Tue, Aug 02, 2016 at 11:34:10PM +0200, Bernhard Übelacker wrote:
https://bugs.winehq.org/show_bug.cgi?id=40384 https://www.winehq.org/pipermail/wine-devel/2016-July/114054.html
DirectX SDK offers the possibility to increase debug output via "DirectX Control Panel". This prints this error: DINPUT8: ERROR IDirectInput8::EnumDevicesBySemantics: arg 2: invalid UNICODE string
It looks like ansi version of EnumDevicesBySemantics forwards the string to the wide variant without conversation. So the assumption is that with the old compiler version we got enough valid wide string termination between the ansi string actionName member and the next invalid memory page. This is the added test trying to prove by putting the string right before a memory page with PAGE_NOACCESS.
This seems pretty convincing, thanks for tracking this down.
We don't actually want to test for this Windows bug, so please resend the patch without the PAGE_NOACCESS stuff - just add a comment explaining the double nul-termination.
Huw.