[Bug 17893] New: The Alien Nations / Die Völker crashes: amstream GetFormat stub
http://bugs.winehq.org/show_bug.cgi?id=17893 Summary: The Alien Nations / Die Völker crashes: amstream GetFormat stub Product: Wine Version: 1.1.17 Platform: PC OS/Version: Linux Status: UNCONFIRMED Severity: normal Priority: P2 Component: quartz AssignedTo: wine-bugs(a)winehq.org ReportedBy: hoehle(a)users.sourceforge.net I'd rather split the bug entries for "Die Völker / The Alien Nations" and Motocross Madness 2, bug 17836, comment 3, to warrant each application its own. Although the common cause is stubbed functionality in amstream, these apps might be fixed independently. At start, The Alien Nations tries to display two Intel Indeo videos, somewhat differently. Unimplemented functionality in amstream and the app's not checking for some return codes yields to an exception and crash. More specifically, GetFormat() is expected to fill in a DDSURFACEDESC structure, which wine leaves uninitialised, causing the application to use random uninitialised data. The first crash is prevented by having GetFormat() in dlls/amstream/mediastream.c fill in the dwWidth and dwHeight fields of the DDSURFACEDESC structure (I used 1 as stub value). The code used seems similar to that of http://msdn.microsoft.com/en-us/library/ms787928(VS.85).aspx except the app doesn't check the return code of GetFormat and hence proceeds with uninitialised memory from these two fields. These two values are not enough to avoid a crash when displaying the second video. As the logs http://bugs.winehq.org/attachment.cgi?id=20129 in bug 17836, comment 4 suggest, the app presumably reads more fields from GetFormat: Z buffer depth and pixelformat, and passes that to ddraw. Actually, whether the app crashes there depends on WINEDEBUG settings, as the initialisation of the stack-based DDSURFACEDESC depends on former stack use. I've been able to play the game using WINEDEBUG=+all,-syslevel,-fixup,-dbghelp_dwarf,-heap,warn+heap,-gdi I yet have to disassemble and see which other fields from DDSURFACEDESC are used in the second case. BTW, one needs to work past bug #15915 in order to see this crash in "Alien Nations", which is a blocker for this issue. I did it by quickly hacking the fourcc comparison test in iccvid.c. There exists a demo for this application, but demos typically display no intro videos, so I doubt it would exhibit 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Jörg Höhle <hoehle(a)users.sourceforge.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Depends on| |15915 -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Jörg Höhle <hoehle(a)users.sourceforge.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords| |FIXME -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Keywords|FIXME | -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Zhenya <Zenitur(a)yandex.ru> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|UNCONFIRMED |NEW Ever Confirmed|0 |1 --- Comment #1 from Zhenya <Zenitur(a)yandex.ru> 2009-04-05 03:36:19 --- *** This bug has been confirmed by popular vote. *** -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Bug 17893 depends on bug 15915, which changed state. Bug 15915 Summary: cinepak codec reportedly not installed, FourCC case mismatch http://bugs.winehq.org/show_bug.cgi?id=15915 What |Old Value |New Value ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 --- Comment #2 from Jörg Höhle <hoehle(a)users.sourceforge.net> 2009-04-28 04:29:34 --- The second crash (= the crash in the second intro video) is prevented by having GetFormat() zero dwCaps beside filling dwWidth and dwHeight with 1. With that in place, the app displays a black screen instead of the video, and you get past it by clicking the mouse. Click twice (once for each intro video) and you get to the main menu. Hooray! -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Jörg Höhle <hoehle(a)users.sourceforge.net> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |titan.costa(a)wanadoo.fr -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 --- Comment #3 from Austin English <austinenglish(a)gmail.com> 2009-10-29 15:26:09 --- Is this still an issue in current (1.1.32 or newer) wine? -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 --- Comment #4 from Jörg Höhle <hoehle(a)users.sourceforge.net> 2010-03-24 17:16:01 --- In Wine-1.1.41 I was pleased to see that it does not crash and that you can skip the 2 black screens (no video) by clicking the mouse. Yet lines like fixme:amstream:IDirectDrawMediaStreamImpl_GetFormat (...) stub! err:d3d:resource_init Out of adapter memory err:ddraw:IDirectDrawImpl_CreateNewSurface IWineD3DDevice::CreateSurface failed. hr = 8876017c show that managing to start could be sheer good fortune. Using WINEDEBUG=warn+heap crashes. So it is too early to close this bug. I never got around to complete said patch that lets GetFormat not return garbage to the caller, using mostly zeroes instead. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Jerome Leclanche <adys.wh(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |adys.wh(a)gmail.com --- Comment #5 from Jerome Leclanche <adys.wh(a)gmail.com> 2011-11-02 14:51:57 CDT --- (In reply to comment #4) Status on the patch? -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 GyB <gyebro69(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |gyebro69(a)gmail.com --- Comment #6 from GyB <gyebro69(a)gmail.com> 2012-05-11 11:58:04 CDT --- Still present as of wine-1.5.3-278-gcf89638. I tested with the GOG.com version of Alien Nations. This version of the game contains only 1 intro video. Intro.avi uses Cinepack codec. There is no crash, but the screen shows only black instead of the intro video.
fixme:amstream:IDirectDrawMediaStreamImpl_GetFormat (0x19e670)->(0x32fb40,(nil),(nil),(nil)) stub! appears in the terminal during the black screen.
-- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 joaopa <jeremielapuree(a)yahoo.fr> changed: What |Removed |Added ---------------------------------------------------------------------------- CC| |jeremielapuree(a)yahoo.fr --- Comment #7 from joaopa <jeremielapuree(a)yahoo.fr> 2012-06-02 16:53:27 CDT --- Since crash is fixed, this bug could be closed as FIXED. For the black screen, it could deserve to open a new bug report. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Austin English <austinenglish(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|NEW |RESOLVED Resolution| |FIXED --- Comment #8 from Austin English <austinenglish(a)gmail.com> 2012-06-05 02:21:03 CDT --- (In reply to comment #7)
Since crash is fixed, this bug could be closed as FIXED.
For the black screen, it could deserve to open a new bug report.
Fixed. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 --- Comment #9 from Jörg Höhle <hoehle(a)users.sourceforge.net> 2012-06-05 09:34:52 CDT ---
fixme:amstream:IDirectDrawMediaStreamImpl_GetFormat [...] stub! I doubt anything got fixed if the stub is still there.
In comment #4 I wrote:
managing to start could be sheer good fortune. Using WINEDEBUG=warn+heap crashes. So it is too early to close this bug. Did you try using warn+heap? I'll have to test the retail version with the 2 intros when I'll find time.
-- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Alexandre Julliard <julliard(a)winehq.org> changed: What |Removed |Added ---------------------------------------------------------------------------- Status|RESOLVED |CLOSED --- Comment #10 from Alexandre Julliard <julliard(a)winehq.org> 2012-06-08 15:28:10 CDT --- Closing bugs fixed in 1.5.6. -- 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.
http://bugs.winehq.org/show_bug.cgi?id=17893 Jörg Höhle <hoehle(a)users.sourceforge.net> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|quartz |amstream --- Comment #11 from Jörg Höhle <hoehle(a)users.sourceforge.net> 2012-12-15 11:15:30 CST --- Indeed, despite the GetFormat stub, the app does not crash in wine-1.5.19 any more, even in the presence of warn+heap. Presumably now other functions in Wine that receive the bogus uninitialized values are more robust. Zeroing some members of DDSURFACEDESC as in comment #2 is no more needed with this app. The following sequence occurs twice, once for each intro video: fixme:amstream:IAMMultiMediaStreamImpl_AddMediaStream Specifying a stream object in params is not yet supported fixme:amstream:DirectDrawMediaStreamImpl_IDirectDrawMediaStream_GetFormat (0x125e34)->(0x33fadc,(nil),(nil),(nil)) stub! fixme:amstream:MediaStreamFilterImpl_Run (0x1a8ea8)->(1e00007a3a0): Stub! Here the screen is black and the app waits for a mouse click, then proceeds: fixme:amstream:MediaStreamFilterImpl_Pause (0x1a8ea8)->(): Stub! fixme:amstream:MediaStreamFilterImpl_Stop (0x1a8ea8)->(): Stub! There are still several crashes involving amstream's GetFormat: bug #13816, bug #17836, bug #29926, bug #30364 and bug #30668. -- 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.
https://bugs.winehq.org/show_bug.cgi?id=17893 Zebediah Figura <z.figura12(a)gmail.com> changed: What |Removed |Added ---------------------------------------------------------------------------- Component|amstream |quartz -- 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.
participants (1)
-
wine-bugs@winehq.org