Rémi Bernon (@rbernon) commented about dlls/dmime/midi.c:
hr = IStream_Read(stream, &byte, 1, NULL);
if (hr != S_OK) return hr;
meta_event_type = byte;
hr = read_variable_length_number(stream, &length);
if (hr != S_OK) return hr;
switch (meta_event_type)
{
case MIDI_META_END_OF_TRACK:
if (length != 0)
{
ERR("Invalid MIDI meta event length %lu for end of track event.\n", length);
return E_FAIL;
} return S_FALSE;
I don't see any evidence in the tests that the EOT event makes it stop parsing.