Correction to crash inside RtlCaptureStackBackTrace() + test case

Janne Hakonen joyer83 at live.fi
Sun Jan 23 11:20:52 CST 2011


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 
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0001-2-2-ntdll-Added-try-except-blocks-to-RtlCaptureStackBa.txt
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20110123/27ccf3a2/attachment.txt>
-------------- next part --------------
An embedded and charset-unspecified text was scrubbed...
Name: 0002-1-2-ntdll-tests-Added-a-test-for-RtlCaptureStackBackTr.txt
URL: <http://www.winehq.org/pipermail/wine-devel/attachments/20110123/27ccf3a2/attachment-0001.txt>


More information about the wine-devel mailing list