On Tue, Apr 16, 2013 at 03:19:28PM +0200, Anton Khirnov wrote:
> They can be different if the last keyframe failed to decode correctly.
> Fixes possible invalid reads in such a case.
> 
> Reported-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
> CC:[email protected]
> ---
>  libavcodec/svq1dec.c |    3 ++-
>  1 file changed, 2 insertions(+), 1 deletion(-)
> 
> diff --git a/libavcodec/svq1dec.c b/libavcodec/svq1dec.c
> index d9e6f7e..156b960 100644
> --- a/libavcodec/svq1dec.c
> +++ b/libavcodec/svq1dec.c
> @@ -689,7 +689,8 @@ static int svq1_decode_frame(AVCodecContext *avctx, void 
> *data,
>          } else {
>              /* delta frame */
>              uint8_t *previous = s->prev->data[i];
> -            if (!previous) {
> +            if (!previous ||
> +                s->prev->width != s->width || s->prev->height != s->height) {
>                  av_log(avctx, AV_LOG_ERROR, "Missing reference frame.\n");
>                  result = AVERROR_INVALIDDATA;
>                  goto err;
> -- 

LGTM
_______________________________________________
libav-devel mailing list
[email protected]
https://lists.libav.org/mailman/listinfo/libav-devel

Reply via email to