From: Baptiste Coudurier Date: Fri, 15 May 2009 05:33:05 +0000 (+0000) Subject: free Track and unset priv_data to avoid double free, fix memleak X-Git-Tag: v0.6~4416 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=8be080aebb817e45bdfbb9d13a405f900ecc6b99;p=platform%2Fupstream%2Flibav.git free Track and unset priv_data to avoid double free, fix memleak Originally committed as revision 18836 to svn://svn.ffmpeg.org/ffmpeg/trunk --- diff --git a/libavformat/mxfdec.c b/libavformat/mxfdec.c index 73b0a77..2986e8e 100644 --- a/libavformat/mxfdec.c +++ b/libavformat/mxfdec.c @@ -943,6 +943,10 @@ static int mxf_read_close(AVFormatContext *s) int i; av_freep(&mxf->packages_refs); + + for (i = 0; i < s->nb_streams; i++) + s->streams[i]->priv_data = NULL; + for (i = 0; i < mxf->metadata_sets_count; i++) { switch (mxf->metadata_sets[i]->type) { case MultipleDescriptor: @@ -955,9 +959,6 @@ static int mxf_read_close(AVFormatContext *s) case MaterialPackage: av_freep(&((MXFPackage *)mxf->metadata_sets[i])->tracks_refs); break; - case Track: - mxf->metadata_sets[i] = NULL; /* will be freed later */ - break; default: break; }