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 commit 3539d6c63a16e1b2874bb037a86f317449c58770) Conflicts: libavcodec/iff.c (cherry picked from commit 656f930160db48e0b7b25069c62abc340e7f0628) Conflicts: libavcodec/iff.c
This commit is contained in:
parent
f712d3669e
commit
abc1fa7c5a
@ -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);
|
||||
|
Loading…
x
Reference in New Issue
Block a user