[Bug 20026] Metal Fatigue crashes on file enumeration (Game saves, skirmish maps)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Sep 12 13:20:28 CDT 2012


http://bugs.winehq.org/show_bug.cgi?id=20026

--- Comment #8 from Night Nord <NightNord at gmail.com> 2012-09-12 13:20:28 CDT ---
Created attachment 41658
  --> http://bugs.winehq.org/attachment.cgi?id=41658
Workaround patch, commenting out problematic function

Ok, thanks to mighty printf, I finally located it down to one internal
function:
read_directory_getdents

If it's commented, wine will use POSIX readdir and everything will work just
fine.

Complete "crash-chain" is FindFirstFileA -> FindFirstFileExA -> FindFistFileExW
-> NtQueryDirectoryFile -> read_directory_getdents -> append_entry

Problem is:
1) Game will crash if append_entry from read_directory_getdents entered, in any
case, even if no game-supplied data would be ever touched (I've installed
strcmp-protected  guard, bailing out at various points).
2) AFAIK, there is no game supplied data at this point and append_entry seems
to be fine
3) If bail-out point installed at append_entry very end, it will crash anyway.

My best guess is that we are running into some thread stack size problem - 
read_directory_getdents seems to be somewhat heavier that
read_directory_readdir.

But I don't know how to check it out.

-- 
Configure bugmail: http://bugs.winehq.org/userprefs.cgi?tab=email
Do not reply to this email, post in Bugzilla using the
above URL to reply.
------- You are receiving this mail because: -------
You are watching all bug changes.



More information about the wine-bugs mailing list