[Bug 16834] New: SetFormat() doesn't remap unmapped sound buffers on failure

wine-bugs at winehq.org wine-bugs at winehq.org
Tue Jan 6 17:01:55 CST 2009


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

           Summary: SetFormat() doesn't remap unmapped sound buffers on
                    failure
           Product: Wine
           Version: 1.1.10
          Platform: PC
        OS/Version: Linux
            Status: UNCONFIRMED
          Severity: major
          Priority: P2
         Component: directx-dsound
        AssignedTo: wine-bugs at winehq.org
        ReportedBy: next_ghost at quick.cz


Railroad Tycoon 2 Platinum segfaults on startup because SetFormat() function in
dlls/winealsa.drv/dsoutput.c does the following on my system:

- snd_pcm_open() - failure because already open (line 395)
- snd_pcm_drop() (line 403)
- snd_pcm_close() - existing sound buffer is now unmapped (line 404)
- snd_pcm_open() - success (line 406)
- snd_pcm_hw_params_set_channels(1) - failure because device has minimum of 2
channels (line 416)
- goto err; (line 417)
- return DSERR_BADFORMAT; (line 479)

The call to DSDB_CreateMMAP() on line 464 is skipped by goto err; so the
already unmapped sound buffer is left in This. When DSOUND_PerformMix() tries
to ZeroMemory this buffer, Wine segfaults.


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