# HG changeset patch # User bcoudurier # Date 1229417248 0 # Node ID f693bc71dc1e9fe27d8430a58d17367df9dba7a7 # Parent 05d41346b9640150dda55cebbe502f2ef4956838 check that nb_streams is valid before setting stream, fix crash with jp2 which do not use same structure diff -r 05d41346b964 -r f693bc71dc1e mov.c --- a/mov.c Tue Dec 16 05:22:53 2008 +0000 +++ b/mov.c Tue Dec 16 08:47:28 2008 +0000 @@ -599,9 +599,14 @@ /* FIXME modify qdm2/svq3/h264 decoders to take full atom as extradata */ static int mov_read_extradata(MOVContext *c, ByteIOContext *pb, MOVAtom atom) { - AVStream *st = c->fc->streams[c->fc->nb_streams-1]; - uint64_t size= (uint64_t)st->codec->extradata_size + atom.size + 8 + FF_INPUT_BUFFER_PADDING_SIZE; + AVStream *st; + uint64_t size; uint8_t *buf; + + if (c->fc->nb_streams < 1) // will happen with jp2 files + return 0; + st= c->fc->streams[c->fc->nb_streams-1]; + size= (uint64_t)st->codec->extradata_size + atom.size + 8 + FF_INPUT_BUFFER_PADDING_SIZE; if(size > INT_MAX || (uint64_t)atom.size > INT_MAX) return -1; buf= av_realloc(st->codec->extradata, size);