avformat/mxfdec: only return stream indexes which have a corresponding track
authorMarton Balint <cus@passwd.hu>
Tue, 3 Jul 2018 23:23:45 +0000 (01:23 +0200)
committerMarton Balint <cus@passwd.hu>
Fri, 13 Jul 2018 20:58:40 +0000 (22:58 +0200)
Without this check some crafted files might crash because a packet might be
demuxed which have no corresponding mxf track.

Signed-off-by: Marton Balint <cus@passwd.hu>
libavformat/mxfdec.c

index 3a8e76e..996969d 100644 (file)
@@ -423,7 +423,7 @@ static int mxf_get_stream_index(AVFormatContext *s, KLVPacket *klv, int body_sid
             return i;
     }
     /* return 0 if only one stream, for OP Atom files with 0 as track number */
-    return s->nb_streams == 1 ? 0 : -1;
+    return s->nb_streams == 1 && s->streams[0]->priv_data ? 0 : -1;
 }
 
 static int find_body_sid_by_offset(MXFContext *mxf, int64_t offset)