From cfc135a3a8b176db48051abd087033701208244a Mon Sep 17 00:00:00 2001 From: Ozkan Sezer Date: Sun, 7 Oct 2018 00:42:10 +0300 Subject: [PATCH] native_midi_common.c: backport two fixes from default (2.0) branch. --- native_midi/native_midi_common.c | 22 ++++++++++++++-------- 1 file changed, 14 insertions(+), 8 deletions(-) diff --git a/native_midi/native_midi_common.c b/native_midi/native_midi_common.c index 12294750..fa115cc1 100644 --- a/native_midi/native_midi_common.c +++ b/native_midi/native_midi_common.c @@ -226,13 +226,15 @@ static MIDIEvent *MIDItoStream(MIDIFile *mididata) MIDIEvent *currentEvent = head; int trackID; - if (NULL == head) - return NULL; - - track = (MIDIEvent**) calloc(1, sizeof(MIDIEvent*) * mididata->nTracks); if (NULL == head) - return NULL; - + return NULL; + + track = (MIDIEvent**) calloc(1, sizeof(MIDIEvent*) * mididata->nTracks); + if (NULL == track) + { + free(head); + return NULL; + } /* First, convert all tracks to MIDIEvent lists */ for (trackID = 0; trackID < mididata->nTracks; trackID++) track[trackID] = MIDITracktoStream(&mididata->track[trackID]); @@ -380,14 +382,18 @@ MIDIEvent *CreateMIDIEventList(SDL_RWops *rw, Uint16 *division) *division = mididata->division; eventList = MIDItoStream(mididata); - + if (eventList == NULL) + { + free(mididata); + return NULL; + } for(trackID = 0; trackID < mididata->nTracks; trackID++) { if (mididata->track[trackID].data) free(mididata->track[trackID].data); } free(mididata->track); - free(mididata); + free(mididata); return eventList; }