[FFmpeg-cvslog] Do not decode RV30 files if the extradata is too small

Reimar Döffinger Reimar.Doeffinger at gmx.de
Sun Jul 17 11:49:30 CEST 2011


On Sat, Jul 16, 2011 at 04:03:44PM -0400, compn wrote:
> On Sat, 16 Jul 2011 19:49:09 +0200 (CEST), Rafaël Carré wrote:
> >ffmpeg | branch: master | Rafaël Carré <rafael.carre at gmail.com> | Sat Jul 16 11:41:08 2011 -0400| [289c60001fb0a9a1d7a97c876d8a42b84c6874ac] | committer: Diego Biurrun
> >
> >Do not decode RV30 files if the extradata is too small
> >
> >Signed-off-by: Diego Biurrun <diego at biurrun.de>
> >
> >> http://git.videolan.org/gitweb.cgi/ffmpeg.git/?a=commit;h=289c60001fb0a9a1d7a97c876d8a42b84c6874ac
> >---
> >
> > libavcodec/rv30.c |    1 +
> > 1 files changed, 1 insertions(+), 0 deletions(-)
> >
> >diff --git a/libavcodec/rv30.c b/libavcodec/rv30.c
> >index 5d7109f..e047c82 100644
> >--- a/libavcodec/rv30.c
> >+++ b/libavcodec/rv30.c
> >@@ -256,6 +256,7 @@ static av_cold int rv30_decode_init(AVCodecContext *avctx)
> >     if(avctx->extradata_size - 8 < (r->rpr - 1) * 2){
> >         av_log(avctx, AV_LOG_ERROR, "Insufficient extradata - need at least %d bytes, got %d\n",
> >                6 + r->rpr * 2, avctx->extradata_size);
> >+        return EINVAL;
> >     }
> >     r->parse_slice_header = rv30_parse_slice_header;
> >     r->decode_intra_types = rv30_decode_intra_types;
> 
> 
> dont we like to try playing it anyways ?
> what exactly does this fix?
> the thread on libav-devel was just patch only.

It is broken anyway, EINVAL can be > 0 on some platforms,
the AVERROR macro exists for a reason.
This is plain broken and should be reverted.


More information about the ffmpeg-cvslog mailing list