diff --git a/libavformat/utils.c b/libavformat/utils.c index c25eab4d49..685fdb9b76 100644 --- a/libavformat/utils.c +++ b/libavformat/utils.c @@ -3542,7 +3542,9 @@ static int extract_extradata(AVStream *st, AVPacket *pkt) &extradata_size); if (extradata) { - i->avctx->extradata = av_mallocz(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); + av_assert0(!i->avctx->extradata); + if ((unsigned)extradata_size < FF_MAX_EXTRADATA_SIZE) + i->avctx->extradata = av_mallocz(extradata_size + AV_INPUT_BUFFER_PADDING_SIZE); if (!i->avctx->extradata) { av_packet_unref(pkt_ref); return AVERROR(ENOMEM);