Rémi Bernon (@rbernon) commented about dlls/dmime/midi.c:
+ TRACE("(%p, %p): stub\n", parser, out_length); + while (TRUE) + { + HRESULT hr; + BYTE magic[4] = {0}, last_status = 0; + DWORD length_be; + ULONG length; + ULONG read = 0; + + TRACE("Start parsing track %u\n", i); + if ((hr = IStream_Read(parser->stream, magic, sizeof(magic), &read)) != S_OK) return hr; + if (read == 0) break; + if (memcmp(magic, "MTrk", 4) != 0) break; + + if ((hr = IStream_Read(parser->stream, &length_be, sizeof(length_be), NULL)) != S_OK) break; + length = GET_BE_DWORD(length_be); Should check the read size there maybe?
-- https://gitlab.winehq.org/wine/wine/-/merge_requests/5081#note_61501