mxfenc: don't try to write footer without header
authorAndreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Wed, 18 Mar 2015 20:57:58 +0000 (21:57 +0100)
committerMichael Niedermayer <michaelni@gmx.at>
Thu, 19 Mar 2015 01:20:30 +0000 (02:20 +0100)
This fixes a crash, when trying to mux h264 into mxf_opatom.

Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
Previous version reviewed-by: tomas.hardin@codemill.se
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
libavformat/mxfenc.c

index e9c4a9d..0349e5d 100644 (file)
@@ -2402,6 +2402,13 @@ static int mxf_write_footer(AVFormatContext *s)
     AVIOContext *pb = s->pb;
     int err = 0;
 
+    if (!mxf->header_written ||
+        (s->oformat == &ff_mxf_opatom_muxer && !mxf->body_partition_offset)) {
+        /* reason could be invalid options/not supported codec/out of memory */
+        err = AVERROR_UNKNOWN;
+        goto end;
+    }
+
     mxf->duration = mxf->last_indexed_edit_unit + mxf->edit_units_count;
 
     mxf_write_klv_fill(s);