[Bug 17497] Xfire crashes with latest version (1.104)

wine-bugs at winehq.org wine-bugs at winehq.org
Wed Oct 21 08:56:41 CDT 2009


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


Andrey Turkin <andrey.turkin at gmail.com> changed:

           What    |Removed                     |Added
----------------------------------------------------------------------------
                 CC|                            |andrey.turkin at gmail.com




--- Comment #10 from Andrey Turkin <andrey.turkin at gmail.com>  2009-10-21 08:56:40 ---
Xfire hooks quite a few functions with 5 bytes long "jmpl" instruction. To do
this, it copies instructions from function start to its own memory and sets up
a trampoline back into a function; the problem is that Xfire doesn't recognize
relative"call" instructions so when such instruction is copied and executed at
different address it will lead to invalid code being executed. Unfortunately,
since Wine dlls are usually compiled with -fPIC option, function prologue can
sometimes look like:

func+0: push ebp
func+1: mov ebp, esp
func+3: push ebx
func+4: call thunk

which, when hooked, will lead to a crash.

Technically this is Xfire hook bug (it should recognize instructions that
depends on their address and fix/emulate them accordingly) but on Windows this
bug is never triggered.

Stefan Dösinger recently submitted set of patches into Wine and GCC which force
GCC to emit specific prologue for some functions hooked by Xfire. So compile
very latest GCC (from CVS) and use it to compile Wine (from GIT) and that
should fix this bug.

-- 
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