|
|
|
@@ -599,9 +599,14 @@ static int mov_read_enda(MOVContext *c, ByteIOContext *pb, MOVAtom atom) |
|
|
|
/* 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); |
|
|
|
|