[vlc-devel] [PATCH] avcodec: Extend the check for impossible dimensions

Luca Barbato lu_zero at gentoo.org
Sat Apr 26 22:07:21 CEST 2014


On 26/04/14 21:58, Luca Barbato wrote:
> Overly large frame sizes are commonly caused by broken streams.
> 
> Bug-Id: 11245
> ---
> 
> It isn't the perfect solution, sending in case you need it really quick.
> 
>  modules/codec/avcodec/video.c | 6 ++++--
>  1 file changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/modules/codec/avcodec/video.c b/modules/codec/avcodec/video.c
> index 022dee1..15a3c44 100644
> --- a/modules/codec/avcodec/video.c
> +++ b/modules/codec/avcodec/video.c
> @@ -136,9 +136,11 @@ static inline picture_t *ffmpeg_NewPictBuf( decoder_t *p_dec,
>          avcodec_align_dimensions2(p_context, &width, &height, aligns);
>      }
> 
> -    if( width == 0 || height == 0)
> -        return NULL; /* invalid display size */
> 
> +    if( width == 0 || height == 0 || width > (1 << 14) || height > (1 << 14) ) {
> +        msg_Err( p_dec, "Excessive frame size %dx%d.", width, height );
> +        return NULL; /* invalid display size */
> +    }
>      p_dec->fmt_out.video.i_width = width;
>      p_dec->fmt_out.video.i_height = height;


Actually VoutValidateFormat rejects > 8192, locally amended to match.

lu



More information about the vlc-devel mailing list