mirror of
https://github.com/Ardour/ardour.git
synced 2026-01-03 12:19:33 +01:00
Fix memory leak for invalid SMF event
This commit is contained in:
parent
88bd2115a0
commit
b269a1298c
1 changed files with 6 additions and 0 deletions
|
|
@ -316,11 +316,13 @@ smf_event_new_from_bytes(int first_byte, int second_byte, int third_byte)
|
|||
|
||||
if (first_byte > 255) {
|
||||
g_warning("smf_event_new_from_bytes: first byte is %d, which is larger than 255.", first_byte);
|
||||
smf_event_delete(event);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
if (!is_status_byte(first_byte)) {
|
||||
g_warning("smf_event_new_from_bytes: first byte is not a valid status byte.");
|
||||
smf_event_delete(event);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
|
|
@ -335,11 +337,13 @@ smf_event_new_from_bytes(int first_byte, int second_byte, int third_byte)
|
|||
if (len > 1) {
|
||||
if (second_byte > 255) {
|
||||
g_warning("smf_event_new_from_bytes: second byte is %d, which is larger than 255.", second_byte);
|
||||
smf_event_delete(event);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
if (is_status_byte(second_byte)) {
|
||||
g_warning("smf_event_new_from_bytes: second byte cannot be a status byte.");
|
||||
smf_event_delete(event);
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
|
|
@ -347,11 +351,13 @@ smf_event_new_from_bytes(int first_byte, int second_byte, int third_byte)
|
|||
if (len > 2) {
|
||||
if (third_byte > 255) {
|
||||
g_warning("smf_event_new_from_bytes: third byte is %d, which is larger than 255.", third_byte);
|
||||
smf_event_delete(event);
|
||||
return (NULL);
|
||||
}
|
||||
|
||||
if (is_status_byte(third_byte)) {
|
||||
g_warning("smf_event_new_from_bytes: third byte cannot be a status byte.");
|
||||
smf_event_delete(event);
|
||||
return (NULL);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue