http://bugs.winehq.org/show_bug.cgi?id=22661
Summary: XMedia Recode crashes on wine-1.1.44 Product: WineHQ Bugzilla Version: unspecified Platform: x86-64 OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: bugzilla-unknown AssignedTo: wine-bugs@winehq.org ReportedBy: mgansser@inneo.de
XMedia Recode crashes on wine-1.1.44 if i open a mpeg file.
my System: Fedora 13 program name: XMedia Recode Version: http://www.xmedia-recode.de/download/XMediaRecode2216_setup.exe
the following older version have no problems http://www.xmedia-recode.de/download/XMediaRecode2184_setup.exe
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #1 from Martin mgansser@inneo.de 2010-05-12 02:08:15 --- Created an attachment (id=27886) --> (http://bugs.winehq.org/attachment.cgi?id=27886) wine backtrace
http://bugs.winehq.org/show_bug.cgi?id=22661
Dmitry Timoshkov dmitry@codeweavers.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Component|bugzilla-unknown |-unknown Version|unspecified |1.1.44 Product|WineHQ Bugzilla |Wine Summary|XMedia Recode crashes on |XMedia Recode crashes |wine-1.1.44 |
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #2 from Dmitry Timoshkov dmitry@codeweavers.com 2010-05-12 04:17:32 --- Start with attaching full terminal output including a backtrace without any debug switches.
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #3 from Vitaliy Margolen vitaliy@kievinfo.com 2010-05-12 09:29:17 --- And make sure you do have wine debug symbols installed.
http://bugs.winehq.org/show_bug.cgi?id=22661
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Keywords| |download URL| |http://www.xmedia-recode.de | |/download/XMediaRecode2216_ | |setup.exe
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #4 from Martin mgansser@inneo.de 2010-05-12 13:24:14 --- Created an attachment (id=27898) --> (http://bugs.winehq.org/attachment.cgi?id=27898) wine_debug.txt
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #5 from Martin mgansser@inneo.de 2010-05-12 13:25:10 --- sorry i don't know how to get the needed debug results. I have read the infos from http://wiki.winehq.org/Backtraces but ... attached you find the infos.
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #6 from Vitaliy Margolen vitaliy@kievinfo.com 2010-05-12 21:41:13 --- You still did not installed wine debug symbols. Look in the same place you got Wine from. Or compile Wine from source.
How to get log: http://wiki.winehq.org/FAQ#get_log
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #7 from Martin mgansser@inneo.de 2010-05-13 05:31:40 --- 1. i have installed the following packages from: http://koji.fedoraproject.org/koji/buildinfo?buildID=173208 on Fedora 13 2.6.33.3-85.fc13.x86_64, because a 32bit application runs only with wine 32bit.
wine-courier-fonts-1.1.44-3.fc13.noarch wine-common-1.1.44-3.fc13.noarch wine-marlett-fonts-1.1.44-3.fc13.noarch wine-wow-1.1.44-3.fc13.i686 wine-core-1.1.44-3.fc13.i686 wine-1.1.44-3.fc13.i686 wine-desktop-1.1.44-3.fc13.noarch wine-cms-1.1.44-3.fc13.i686 wine-twain-1.1.44-3.fc13.i686 wine-pulseaudio-1.1.44-3.fc13.i686 wine-fonts-1.1.44-3.fc13.noarch wine-small-fonts-1.1.44-3.fc13.noarch wine-capi-1.1.44-3.fc13.i686 wine-ldap-1.1.44-3.fc13.i686 wine-symbol-fonts-1.1.44-3.fc13.noarch wine-system-fonts-1.1.44-3.fc13.noarch wine-debuginfo-1.1.44-3.fc13.i686
2. I cannot build a new 32bit wine rpm on my x86_64bit FC13 with the Compiler flags CFLAGS="-g -gdwarf-2" because this brakes the rpm build.
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #8 from Dmitry Timoshkov dmitry@codeweavers.com 2010-05-13 06:09:19 ---
wine-pulseaudio-1.1.44-3.fc13.i686
Don't install this one, if you do - report the bugs to Fedora instead.
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #9 from Martin mgansser@inneo.de 2010-05-13 08:24:06 --- i have now deinstalled all my wine rpm's and compiled wine 32bit from the source on Fedora 11 x86_64.
# export CFLAGS="-Wno-error -g -O2" # ./configure && make depend && make && make install
/usr/local/bin/wine XMedia\ Recode.exe &> log.txt give me the attached logs, but i think this is not enough for debugging.
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #10 from Martin mgansser@inneo.de 2010-05-13 08:25:02 --- Created an attachment (id=27924) --> (http://bugs.winehq.org/attachment.cgi?id=27924) log.txt
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #11 from Vitaliy Margolen vitaliy@kievinfo.com 2010-05-13 11:05:49 --- Don't install compiled Wine. Run it directly from the source dir.
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #12 from Martin mgansser@inneo.de 2010-05-13 11:37:46 --- [martin@gecko wine-1.1.44]$ pwd /usr/src/redhat/SOURCES/wine-1.1.44 [martin@gecko wine-1.1.44]$ ./wine /home/martin/.wine/drive_c/Programme/XMedia\ Recode/XMedia\ Recode.exe fixme:win:EnumDisplayDevicesW ((null),0,0x315860,0x00000000), stub! fixme:win:EnumDisplayDevicesW ((null),0,0x3158cc,0x00000000), stub! fixme:wininet:InternetLockRequestFile STUB fixme:wininet:CommitUrlCacheEntryInternal entry already in cache - don't know what to do! wine: Unhandled exception 0xc000000d at address 0x30300023:0x004bdbd2 (thread 003f), starting debugger... [martin@gecko wine-1.1.44]$ Process of pid=003e has terminated No process loaded, cannot execute 'echo Modules:' Cannot get info on module while no process is loaded No process loaded, cannot execute 'echo Threads:' process tid prio (all id:s are in hex) 00000008 winedbg.exe 00000009 0 0000000e services.exe 00000014 0 00000010 0 0000000f 0 00000011 winedevice.exe 00000017 0 00000016 0 00000013 0 00000012 0 00000040 explorer.exe 00000041 0 You must be attached to a process to run this command. No process loaded, cannot execute 'detach'
http://bugs.winehq.org/show_bug.cgi?id=22661
Martin mgansser@inneo.de changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.xmedia-recode.de |http://www.xmedia-recode.de |/download/XMediaRecode2216_ |/download/XMediaRecode2220_ |setup.exe |setup.exe
http://bugs.winehq.org/show_bug.cgi?id=22661
Wylda wylda@volny.cz changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |wylda@volny.cz
--- Comment #13 from Wylda wylda@volny.cz 2010-05-16 13:58:24 ---
Don't install compiled Wine. Run it directly from the source dir.
[martin@gecko wine-1.1.44]$ pwd /usr/src/redhat/SOURCES/wine-1.1.44 [martin@gecko wine-1.1.44]$ ./wine /home/martin/.wine/drive_c/Programme/XMedia\ Recode/XMedia\ Recode.exe
You should do it different way as a user:
$ cd /home/martin/.wine/drive_c/Programme/XMedia\ Recode $ /usr/src/redhat/SOURCES/wine-1.1.44/wine XMedia\ Recode.exe
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #14 from Martin mgansser@inneo.de 2010-05-17 06:31:46 --- this is the output from my older fc12 on 32bit:
[martin@fc12 ~]$ cd /home/martin/.wine/drive_c/Programme/XMedia\ Recode/ [martin@fc12 XMedia Recode]$ /usr/src/redhat/SOURCES/wine-1.1.44/wine XMedia\ Recode.exe err:winediag:X11DRV_WineGL_InitOpenglInfo The Mesa OpenGL driver is using software rendering, most likely your OpenGL drivers haven't been installed correctly fixme:d3d_caps:wined3d_guess_card No card selector available for GL vendor 4 and card vendor 0000. fixme:win:EnumDisplayDevicesW ((null),0,0x315860,0x00000000), stub! fixme:d3d_caps:wined3d_guess_card No card selector available for GL vendor 4 and card vendor 0000. fixme:win:EnumDisplayDevicesW ((null),0,0x3158cc,0x00000000), stub! fixme:wininet:InternetLockRequestFile STUB fixme:wininet:CommitUrlCacheEntryInternal entry already in cache - don't know what to do! wine: Unhandled exception 0xc000000d at address 0x30300073:0x004bdbd2 (thread 0009), starting debugger... Process of pid=0008 has terminated No process loaded, cannot execute 'echo Modules:' [martin@fc12 XMedia Recode]$ Cannot get info on module while no process is loaded No process loaded, cannot execute 'echo Threads:' process tid prio (all id:s are in hex) 0000000e services.exe 00000014 0 00000010 0 0000000f 0 00000011 winedevice.exe 00000018 0 00000017 0 00000013 0 00000012 0 00000019 explorer.exe 0000001a 0 You must be attached to a process to run this command. No process loaded, cannot execute 'detach'
http://bugs.winehq.org/show_bug.cgi?id=22661
Martin mgansser@inneo.de changed:
What |Removed |Added ---------------------------------------------------------------------------- URL|http://www.xmedia-recode.de |http://www.xmedia-recode.de |/download/XMediaRecode2220_ |/download/XMediaRecode2229_ |setup.exe |setup.exe
http://bugs.winehq.org/show_bug.cgi?id=22661
Louis Lenders xerox_xerox2000@yahoo.co.uk changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW CC| |xerox_xerox2000@yahoo.co.uk Ever Confirmed|0 |1
--- Comment #15 from Louis Lenders xerox_xerox2000@yahoo.co.uk 2010-07-23 03:49:17 --- confirming
http://bugs.winehq.org/show_bug.cgi?id=22661
Martin m.gansser@t-online.de changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |m.gansser@t-online.de
--- Comment #16 from Martin m.gansser@t-online.de 2010-07-23 04:59:29 --- XMediaRecode2247 works on Fedora 13 x86 version in the following combination on a fresh vmware installation:
Fedora 13 x86 wine-1.2-1.fc13.i686
[root@fc13 tmp]# uname -a Linux fc13 2.6.34.1-20.fc13.i686 #1 SMP Mon Jul 19 22:13:11 UTC 2010 i686 i686 i386 GNU/Linux
[root@fc13 tmp]# yum install openal-soft
[martin@fc13 ~]$ wine /tmp/XMediaRecode2247_setup.exe fixme:shell:SHAutoComplete stub [martin@fc13 ~]$ err:winediag:X11DRV_WineGL_InitOpenglInfo The Mesa OpenGL driver is using software rendering, most likely your OpenGL drivers haven't been installed correctly fixme:d3d_caps:wined3d_guess_card No card selector available for GL vendor 4 and card vendor 0000. fixme:win:EnumDisplayDevicesW ((null),0,0x325c2c,0x00000000), stub! fixme:d3d_caps:wined3d_guess_card No card selector available for GL vendor 4 and card vendor 0000. fixme:win:EnumDisplayDevicesW ((null),0,0x325c98,0x00000000), stub! fixme:wininet:InternetLockRequestFile STUB
a test on a x86_64 with wine-1.2 isn't confirmed yet from me.
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #17 from Martin m.gansser@t-online.de 2010-07-23 15:49:28 --- Sorry for my wrong statement before ...
XMedia Recode crashes again if i wont to open a media file with:
[martin@fc13-32bit XMedia Recode]$ winedbg XMedia\ Recode.exe WineDbg starting on pid 0019 First chance exception: page fault on write access to 0x027f0000 in 32-bit code (0x6877136f). Register dump: CS:0073 SS:007b DS:007b ES:007b FS:0033 GS:003b EIP:6877136f ESP:0033f870 EBP:0033f8e8 EFLAGS:00210a02( R- --O I - - - ) EAX:80808081 EBX:688235dc ECX:00000000 EDX:00000067 ESI:000000ac EDI:027f0000 Stack dump: 0x0033f870: 0000031c 00000000 00000000 00000010 0x0033f880: 00000010 00000000 00000000 00000010 0x0033f890: 00000010 68cfcfe4 00135aa8 00000000 0x0033f8a0: 00cc0020 00000308 00330001 688a0001 0x0033f8b0: 0033f8c8 0000031c 00136318 00000328 0x0033f8c0: 00000000 00000000 00000010 00000010 Backtrace: =>0 0x6877136f in user32 (+0x2136f) (0x0033f8e8) 1 0x68771e3f in user32 (+0x21e3e) (0x0033f978) 2 0x68771f5a CreateIconFromResourceEx+0xd9() in user32 (0x0033f9c8) 3 0x687740e3 in user32 (+0x240e2) (0x0033fa88) 4 0x68774681 LoadImageW+0x1d0() in user32 (0x0033fb88) 5 0x68775486 LoadImageA+0x1a5() in user32 (0x0033fc78) 6 0x68c003f2 SIC_Initialize+0x1b1() in shell32 (0x0033fcc8) 7 0x68c09d94 in shell32 (+0x29d93) (0x0033fd08) 8 0x6833bbb5 call_dll_entry_point+0x14() in ntdll (0x0033fd28) 9 0x6833e994 in ntdll (+0x3e993) (0x0033fe68) 10 0x6833f620 in ntdll (+0x3f61f) (0x0033fec8) 11 0x6833f5f2 in ntdll (+0x3f5f1) (0x0033ff28) 12 0x6833f5f2 in ntdll (+0x3f5f1) (0x0033ff88) 13 0x6833f824 in ntdll (+0x3f823) (0x0033ffe8) 0x6877136f: movb %dl,0x0(%edi,%ecx,4) Wine-dbg>
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #18 from Dmitry Timoshkov dmitry@codeweavers.com 2010-07-24 00:37:29 --- This is a normal DIB access, that's not a crash.
http://bugs.winehq.org/show_bug.cgi?id=22661
--- Comment #19 from Martin m.gansser@t-online.de 2010-07-28 07:50:33 --- Created an attachment (id=29882) --> (http://bugs.winehq.org/attachment.cgi?id=29882) winedbg log
I've made a nother attempt to get debug infos with: WINEDEBUG=+file wine "XMedia Recode.exe" >winedbg.log 2>&1
http://bugs.winehq.org/show_bug.cgi?id=22661
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |focht@gmx.net
--- Comment #20 from Anastasius Focht focht@gmx.net 2010-08-18 08:13:32 --- Hello,
interesting bug - though can't be fixed in Wine ;-)
Relevant app assembly snippet, annotated:
--- snip --- 0x004790b0: subl $0x108,%esp 0x004790b6: movl 0x005168e0,%eax 0x004790bb: xorl %esp,%eax 0x004790bd: movl %eax,0x104(%esp) 0x004790c4: movl 0x15c(%esi),%ecx 0x004790ca: pushl %ebx ; %ebx is zero on entry (value by chance, caller and parent callers don't explicitly init it) 0x004790cb: pushl $0x3714 0x004790d0: pushl $0x104 0x004790d5: leal 0xc(%esp),%ebx 0x004790d9: call 0x0046dff0 ; load format string "Analysis %1.f %%" 0x004790de: pushl $0x0 ; 1st (var) arg -> should be float (64 bit) but instead only 32 bits are passed on stack 0x004790e0: movl %ebx,%eax 0x004790e2: pushl %eax ; format string (= dest buffer) 0x004790e3: movl %ebx,%ecx 0x004790e5: pushl %ecx ; dest buffer 0x004790e6: movl $0x104,%eax ; register pass (max) buffer size in bytes arg for next sprintf-like call 0x004790eb: call 0x00473310 ; get formatted string using sprintf() like app logic 0x004790f0: addl $12,%esp 0x004790f3: movl %ebx,%edx 0x004790f5: pushl %edx ... 0x00479120: movl 0x108(%esp),%ecx 0x00479127: popl %ebx 0x00479128: xorl %esp,%ecx 0x0047912a: call 0x004bcf66 0x0047912f: addl $0x108,%esp 0x00479135: ret --- snip ---
The problem is that the 1st var argument to sprintf like function logic is incorrectly passed as 32-bit integer when it should be passed as 64 bit float (see format string). Because only 32 bits are passed, the other "ghost" 32 bits come from existing stack value which most likely happens to be zero on Windows (by chance!) and non-zero on Wine.
That "0x004790ca: pushl %ebx" actually "saves" the Windows side here. Because %ebx is zero on function entry (by chance!), that stack location gets zeroed where the "ghost" 32 bit part of float 64 bit value lives.
There is no way the compiler could have optimized %ebx value on a global level like this, retaining ebx == 0 so long through several call chains (even dynamic calls). I traced some caller levels up but there is no explicit %ebx -> 0. There are dynamic calls to window proc and the like.
The reason why this register is non-zero on (x86) Wine is the PIC code uses this register to store the GOT (global offset table) address, hence it's not zero at this point (still pointing to user32's _GLOBAL_OFFSET_TABLE_).
My guess is the app developer did something stupid like this:
sprintf( buf, "Analysis %1.f %%", 0);
but intended this:
sprintf( buf, "Analysis %1.f %%", 0.0);
The compiler should generate code like this for passing the "0.0" constant:
--- snip --- fldz fstpl <arg_stack_loc> --- snip ---
If you ask me -> not fixable in Wine.
Regards
http://bugs.winehq.org/show_bug.cgi?id=22661
Anastasius Focht focht@gmx.net changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |INVALID Summary|XMedia Recode crashes |XMedia Recode crashes (app | |bug, incorrect vararg type | |passed to sprintf-like | |function)
--- Comment #21 from Anastasius Focht focht@gmx.net 2010-08-18 09:34:24 --- Hello,
addendum, you can verify my analysis by patching the progress (unicode) format string in "XMedia Recode.exe" from using float format to decimal using hex-editor. With that change, media files can be successfully opened and converted.
This "fix" is not correct because real floats vars (64 bit) are passed in later stage when progress percentage is dynamically calculated/updated. Just as proof of the app bug when the developer incorrectly coded initial zero percentage.
Regards
http://bugs.winehq.org/show_bug.cgi?id=22661
Austin English austinenglish@gmail.com changed:
What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED
--- Comment #22 from Austin English austinenglish@gmail.com 2010-08-18 10:17:48 --- Closing.
http://bugs.winehq.org/show_bug.cgi?id=22661
Dan Kegel dank@kegel.com changed:
What |Removed |Added ---------------------------------------------------------------------------- CC| |dank@kegel.com
--- Comment #23 from Dan Kegel dank@kegel.com 2010-08-18 10:47:56 --- Reported to author.