[FFmpeg-devel] [PATCH 2/4] avcodec/xwddec: Use ff_set_dimensions()

Paul B Mahol onemda at gmail.com
Sat Jun 9 09:35:32 EEST 2018


On 6/9/18, Michael Niedermayer <michael at niedermayer.cc> wrote:
> Fixes: OOM
> Fixes:
> 8178/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_XWD_fuzzer-4844793342459904
>
> Found-by: continuous fuzzing process
> https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg
> Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
> ---
>  libavcodec/xwddec.c | 8 ++++++--
>  1 file changed, 6 insertions(+), 2 deletions(-)
>
> diff --git a/libavcodec/xwddec.c b/libavcodec/xwddec.c
> index 592c98dd4e..8c4358fd4c 100644
> --- a/libavcodec/xwddec.c
> +++ b/libavcodec/xwddec.c
> @@ -39,6 +39,7 @@ static int xwd_decode_frame(AVCodecContext *avctx, void
> *data,
>      uint32_t pixformat, pixdepth, bunit, bitorder, bpad;
>      uint32_t rgb[3];
>      uint8_t *ptr;
> +    int width, height;
>      GetByteContext gb;
>
>      if (buf_size < XWD_HEADER_SIZE)
> @@ -60,8 +61,8 @@ static int xwd_decode_frame(AVCodecContext *avctx, void
> *data,
>
>      pixformat     = bytestream2_get_be32u(&gb);
>      pixdepth      = bytestream2_get_be32u(&gb);
> -    avctx->width  = bytestream2_get_be32u(&gb);
> -    avctx->height = bytestream2_get_be32u(&gb);
> +    width         = bytestream2_get_be32u(&gb);
> +    height        = bytestream2_get_be32u(&gb);
>      xoffset       = bytestream2_get_be32u(&gb);
>      be            = bytestream2_get_be32u(&gb);
>      bunit         = bytestream2_get_be32u(&gb);
> @@ -77,6 +78,9 @@ static int xwd_decode_frame(AVCodecContext *avctx, void
> *data,
>      ncolors       = bytestream2_get_be32u(&gb);
>      bytestream2_skipu(&gb, header_size - (XWD_HEADER_SIZE - 20));
>
> +    if ((ret = ff_set_dimensions(avctx, width, height)) < 0)
> +        return ret;
> +
>      av_log(avctx, AV_LOG_DEBUG,
>             "pixformat %"PRIu32", pixdepth %"PRIu32", bunit %"PRIu32",
> bitorder %"PRIu32", bpad %"PRIu32"\n",
>             pixformat, pixdepth, bunit, bitorder, bpad);
> --
> 2.17.1
>
> _______________________________________________
> ffmpeg-devel mailing list
> ffmpeg-devel at ffmpeg.org
> http://ffmpeg.org/mailman/listinfo/ffmpeg-devel
>

lgtm


More information about the ffmpeg-devel mailing list