diff --git a/libavformat/mov.c b/libavformat/mov.c index b60f8f0eac..921db588ef 100644 --- a/libavformat/mov.c +++ b/libavformat/mov.c @@ -2391,6 +2391,12 @@ static int mov_read_stsd(MOVContext *c, AVIOContext *pb, MOVAtom atom) return mov_finalize_stsd_codec(c, pb, st, sc); fail: + if (sc->extradata) { + int j; + for (j = 0; j < sc->stsd_count; j++) + av_freep(&sc->extradata[j]); + } + av_freep(&sc->extradata); av_freep(&sc->extradata_size); return ret;