mciseq: The code can only handle up to 128 MIDI tracks.

This commit is contained in:
Jörg Höhle 2012-09-26 09:04:39 +02:00 committed by Alexandre Julliard
parent 4c4a0875da
commit c347af5c67

View file

@ -488,10 +488,10 @@ static DWORD MIDI_mciReadMThd(WINE_MCIMIDI* wmm, DWORD dwOffset)
return MCIERR_INVALID_FILE; return MCIERR_INVALID_FILE;
} }
if (wmm->nTracks & 0x8000) { if (wmm->nTracks > 0x80) {
/* this shouldn't be a problem... */ /* wTrackNr is 7 bits only */
WARN("Ouch !! Implementation limitation to 32k tracks per MIDI file is overflowed\n"); FIXME("Truncating MIDI file with %u tracks\n", wmm->nTracks);
wmm->nTracks = 0x7FFF; wmm->nTracks = 0x80;
} }
if ((wmm->tracks = HeapAlloc(GetProcessHeap(), 0, sizeof(MCI_MIDITRACK) * wmm->nTracks)) == NULL) { if ((wmm->tracks = HeapAlloc(GetProcessHeap(), 0, sizeof(MCI_MIDITRACK) * wmm->nTracks)) == NULL) {