https://bugs.winehq.org/show_bug.cgi?id=14193
Bernhard Übelacker bernhardu@vr-web.de changed:
What |Removed |Added ---------------------------------------------------------------------------- Attachment #52002|0 |1 is obsolete| |
--- Comment #23 from Bernhard Übelacker bernhardu@vr-web.de --- Created attachment 52003 --> https://bugs.winehq.org/attachment.cgi?id=52003 Fix by failing acmFormatSuggest for specific destination format, without debug traces.
Dug a little more into the issue.
From my point of view following happens.
- acmMetrics is called to retrieve the needed size for the maximum WAVEFORMATEX size. - In wine and plain windows we need just 0x32. - A buffer of that size is allocated with RtlAllocateHeap. - acmFormatSuggest is called with an special destination wave format WAVE_FORMAT_MSRT24; and is succeeding in wine, contrary to windows. - Monsterx.EXE is now writing beyond the allocated buffer size.
Probably if a driver would be installed supporting WAVE_FORMAT_MSRT24, then the acmMetrics would return a higher maximum buffer size and the crash would not happen.
Attached patch just fails acmFormatSuggest for WAVE_FORMAT_MSRT24 in msacm32. With it demo is playable and sound is working.