avcodec/iff: check pixfmt for rgb8 / rgbn
Fixes out of array access Found-by: Piotr Bandurski <ami_stuff@o2.pl> Signed-off-by: Michael Niedermayer <michaelni@gmx.at> (cherry picked from commit3539d6c63a
) Conflicts: libavcodec/iff.c (cherry picked from commit656f930160
) Conflicts: libavcodec/iff.c
This commit is contained in:
@ -832,9 +832,9 @@ static int decode_frame(AVCodecContext *avctx,
|
||||
break;
|
||||
case 4:
|
||||
bytestream2_init(&gb, buf, buf_size);
|
||||
if (avctx->codec_tag == MKTAG('R','G','B','8'))
|
||||
if (avctx->codec_tag == MKTAG('R','G','B','8') && avctx->pix_fmt == AV_PIX_FMT_RGB32)
|
||||
decode_rgb8(&gb, s->frame.data[0], avctx->width, avctx->height, s->frame.linesize[0]);
|
||||
else if (avctx->codec_tag == MKTAG('R','G','B','N'))
|
||||
else if (avctx->codec_tag == MKTAG('R','G','B','N') && avctx->pix_fmt == AV_PIX_FMT_RGB444)
|
||||
decode_rgbn(&gb, s->frame.data[0], avctx->width, avctx->height, s->frame.linesize[0]);
|
||||
else
|
||||
return unsupported(avctx);
|
||||
|
Reference in New Issue
Block a user