summaryrefslogtreecommitdiff
path: root/libs/evoral/evoral/midi_util.h
diff options
context:
space:
mode:
Diffstat (limited to 'libs/evoral/evoral/midi_util.h')
-rw-r--r--libs/evoral/evoral/midi_util.h9
1 files changed, 8 insertions, 1 deletions
diff --git a/libs/evoral/evoral/midi_util.h b/libs/evoral/evoral/midi_util.h
index 5c72fb86c9..f32e816321 100644
--- a/libs/evoral/evoral/midi_util.h
+++ b/libs/evoral/evoral/midi_util.h
@@ -95,7 +95,9 @@ midi_event_size(const uint8_t* buffer)
int end;
for (end = 1; buffer[end] != MIDI_CMD_COMMON_SYSEX_END; end++) {
- assert((buffer[end] & 0x80) == 0);
+ if ((buffer[end] & 0x80) != 0) {
+ return -1;
+ }
}
assert(buffer[end] == MIDI_CMD_COMMON_SYSEX_END);
return end + 1;
@@ -118,6 +120,11 @@ midi_event_is_valid(const uint8_t* buffer, size_t len)
if (size < 0 || (size_t)size != len) {
return false;
}
+ for (size_t i = 1; i < len; ++i) {
+ if ((buffer[i] & 0x80) != 0) {
+ return false; // Non-status byte has MSb set
+ }
+ }
return true;
}