Merge commit '2bbad1f94cbc5eab0aa2d937bc79d085477d0242'
authorMichael Niedermayer <michaelni@gmx.at>
Tue, 27 Aug 2013 10:47:04 +0000 (12:47 +0200)
committerMichael Niedermayer <michaelni@gmx.at>
Tue, 27 Aug 2013 10:47:04 +0000 (12:47 +0200)
* commit '2bbad1f94cbc5eab0aa2d937bc79d085477d0242':
  movenc: Properly free allocated data on failures in mov_write_header

Conflicts:
libavformat/movenc.c

Merged-by: Michael Niedermayer <michaelni@gmx.at>
1  2 
libavformat/movenc.c

@@@ -3568,6 -3101,30 +3568,32 @@@ static void enable_tracks(AVFormatConte
      }
  }
  
 -            av_free(mov->tracks[mov->chapter_track].enc->extradata);
+ static void mov_free(AVFormatContext *s)
+ {
+     MOVMuxContext *mov = s->priv_data;
+     int i;
+     if (mov->chapter_track) {
+         if (mov->tracks[mov->chapter_track].enc)
 -            av_free(mov->tracks[i].vos_data);
++            av_freep(&mov->tracks[mov->chapter_track].enc->extradata);
+         av_freep(&mov->tracks[mov->chapter_track].enc);
+     }
+     for (i = 0; i < mov->nb_streams; i++) {
+         if (mov->tracks[i].tag == MKTAG('r','t','p',' '))
+             ff_mov_close_hinting(&mov->tracks[i]);
++        else if (mov->tracks[i].tag == MKTAG('t','m','c','d') && mov->nb_meta_tmcd)
++            av_freep(&mov->tracks[i].enc);
+         av_freep(&mov->tracks[i].cluster);
+         av_freep(&mov->tracks[i].frag_info);
+         if (mov->tracks[i].vos_len)
++            av_freep(&mov->tracks[i].vos_data);
+     }
+     av_freep(&mov->tracks);
+ }
  static int mov_write_header(AVFormatContext *s)
  {
      AVIOContext *pb = s->pb;