http://bugs.winehq.org/show_bug.cgi?id=26859
Summary: Segmentation Fault when attempting to run Cronos.exe Product: Wine Version: 1.3.13 Platform: x86 OS/Version: Solaris Status: UNCONFIRMED Severity: normal Priority: P2 Component: loader AssignedTo: wine-bugs@winehq.org ReportedBy: client902@mail.ru
Attempting to run Cronos.exe (Russian DBMS, http://www.cronos.ru) causes Segmentation Fault. I discovered that the mentioned error occurs during windows libraries loading (according their dependencies).
More precisely description (See file dlls/ntdlls/loader.c; function find_forwarded_export()):
Finding the final function pointer for a forwarded function OleCreateFontIndirect() in oleaut32.dll leads to loading this library in memory followed by its initialization through calling attach_process(). But this happens during a recursive call of fixup_imports(), i.e. before switching to an alternative stack (in the functions call_on_stack() and switch_to_stack()). Thus, we have a case when the DllMain() function executed on improper stack, causing its overflow.
PS If it happens that the unswitched stack size is large enough for normal operation of process_attach(), then the program looks like working correctly.