http://bugs.winehq.org/show_bug.cgi?id=8096
Summary: Bug in Sysexhandling of winealsa.drv Product: Wine Version: unspecified Platform: Other OS/Version: other Status: UNCONFIRMED Severity: normal Priority: P2 Component: wine-multimedia AssignedTo: wine-bugs@winehq.org ReportedBy: musical_snake@gmx.de
When adding sysex buffers using midAddBuffer, the MHDR_INQUEUE flag is not set in the lpMidiHdr->dwFlags. This results in reaper (www.reaper.fm) completely freezes the machine when trying to add sysex buffers (because it apparently checks the dwFlags Field of the buffers it tries to add and will continuously add them to the bufferlist until all memory is exhausted).
A fix is to add following line in dlls/winealsa.drv/midi.c, function midAddBuffer:
EnterCriticalSection(&crit_sect); lpMidiHdr->dwFlags |= MHDR_INQUEUE; <<<< add this line if (MidiInDev[wDevID].lpQueueHdr == 0) {
Ralf