From: Yuxuan Shui yshui@codeweavers.com
--- dlls/dmime/midi.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-)
diff --git a/dlls/dmime/midi.c b/dlls/dmime/midi.c index baec66ea88f..76662eac3ee 100644 --- a/dlls/dmime/midi.c +++ b/dlls/dmime/midi.c @@ -456,13 +456,15 @@ static HRESULT WINAPI midi_sequence_track_IPersistStream_Load(IPersistStream *if { if (!(event = calloc(1, sizeof(*event)))) return E_OUTOFMEMORY;
- hr = read_midi_event(stream, event, last_status, &bytes_read); - if (hr != S_OK) break; + if ((hr = read_midi_event(stream, event, last_status, &bytes_read)) != S_OK) + { + free(event); + break; + } list_add_tail(&This->events, &event->entry); This->event_count++; last_status = event->status; is_end_of_track = event->status == 0xff && event->type == MIDI_META_END_OF_TRACK; - event = NULL; }
if (hr == S_OK && bytes_read != length) @@ -471,7 +473,6 @@ static HRESULT WINAPI midi_sequence_track_IPersistStream_Load(IPersistStream *if hr = E_FAIL; }
- if (hr != S_OK && event) free(event); return hr; }