Hi,
This is my first attempt to post patches to Wine and it would be great if you could review these.
First patch (0001-2-2-ntdll-Added-try-except-blocks-to-RtlCaptureStackBa.txt) is a correction to a crash situation where application crashes if RtlCaptureStackBackTrace() is called and one of the frame pointers of call stack is invalid, pointing usually to 0xffffffff, sometimes to other invalid locations. The correction wraps the offending code inside __try – __except blocks so that a resulting access violation is caught before it can crash the calling application.
Second patch (0002-1-2-ntdll-tests-Added-a-test-for-RtlCaptureStackBackTr.txt) is a test case for the correction. It changes one of the frame pointers to invalid value and then calls RtlCaptureStackBackTrace(). The test fails on Wine’s HEAD (without the first patch), but passes successfully on Windows 7. Haven’t tested this on other OSes. I created a new signal.c file for the test case under ntdll/tests since I couldn’t find more fitting place.
This crash can be reproduced with Anarchy Online game when trying to open an in-game browser. Also reproducible with AwesomiumGL sample application from Awesomium’s SDK. The crash (among other problems) is reported to bugzilla at: http://bugs.winehq.org/show_bug.cgi?id=25206.
Best Regards, Janne Hakonen