13
0

* FIXME in midi_util.h

git-svn-id: svn://localhost/ardour2/branches/3.0@4615 d708f5d6-7413-0410-9779-e7cbd77b26cf
This commit is contained in:
Hans Baier 2009-02-17 16:42:17 +00:00
parent f219a53744
commit 96d62ba6b4

View File

@ -82,13 +82,13 @@ midi_event_size(const uint8_t* buffer)
if (status >= 0x80 && status < 0xF0) {
status &= 0xF0;
}
// FIXME: This is not correct, read the size and verify
// A sysex can contain the byte MIDI_CMD_COMMON_SYSEX_END, so this
// is likely to result in corrupt buffers and catastrophic failure
// see http://www.midi.org/techspecs/midimessages.php
if (status == MIDI_CMD_COMMON_SYSEX) {
int end;
for (end = 1; buffer[end] != MIDI_CMD_COMMON_SYSEX_END; end++) {}
for (end = 1; buffer[end] != MIDI_CMD_COMMON_SYSEX_END; end++) {
assert((buffer[end] & 0x80) == 0);
}
assert(buffer[end] == MIDI_CMD_COMMON_SYSEX_END);
return end + 1;
} else {