diff --git a/libavformat/mov.c b/libavformat/mov.c index 70fa1e0775..33e1054368 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -1942,10 +1942,11 @@ static int mov_read_stsz(MOVContext *c, AVIOContext *pb, MOVAtom atom) sc->sample_count = i; + av_free(buf); + if (pb->eof_reached) return AVERROR_EOF; - av_free(buf); return 0; } @@ -2028,6 +2029,8 @@ static int mov_read_ctts(MOVContext *c, AVIOContext *pb, MOVAtom atom) av_log(c->fc, AV_LOG_TRACE, "track[%i].ctts.entries = %i\n", c->fc->nb_streams-1, entries); + av_freep(&sc->ctts_data); + if (!entries) return 0; if (entries >= UINT_MAX / sizeof(*sc->ctts_data))