diff options
Diffstat (limited to 'tools')
-rw-r--r-- | tools/ismindex.c | 15 |
1 files changed, 13 insertions, 2 deletions
diff --git a/tools/ismindex.c b/tools/ismindex.c index 540aca2c68..502a7dc2b1 100644 --- a/tools/ismindex.c +++ b/tools/ismindex.c @@ -305,10 +305,21 @@ static int handle_file(struct Tracks *tracks, const char *file, int split) tracks->duration = ctx->duration; for (i = 0; i < ctx->nb_streams; i++) { + struct Track **temp; AVStream *st = ctx->streams[i]; track = av_mallocz(sizeof(*track)); - tracks->tracks = av_realloc(tracks->tracks, - sizeof(*tracks->tracks) * (tracks->nb_tracks + 1)); + if (!track) { + err = AVERROR(ENOMEM); + goto fail; + } + temp = av_realloc(tracks->tracks, + sizeof(*tracks->tracks) * (tracks->nb_tracks + 1)); + if (!temp) { + av_free(track); + err = AVERROR(ENOMEM); + goto fail; + } + tracks->tracks = temp; tracks->tracks[tracks->nb_tracks] = track; track->name = file; |