Message ID | 20200704124553.28582-2-michael@niedermayer.cc |
---|---|
State | Accepted |
Commit | 4091f4f78012d1a7eb1e04b69cf65d5ef3afee3a |
Headers | show |
Series | [FFmpeg-devel,1/3] avcodec/mjpegdec: Limit bayer to single plane outputting format | expand |
Context | Check | Description |
---|---|---|
andriy/default | pending | |
andriy/make | success | Make finished |
andriy/make_fate | success | Make fate finished |
On Sat, Jul 04, 2020 at 02:45:52PM +0200, Michael Niedermayer wrote: > Fixes: out of array access > Fixes: 23888/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-6021365974171648.fuzz > > Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg > Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> > --- > libavcodec/tiff.c | 15 +++++++++++++-- > 1 file changed, 13 insertions(+), 2 deletions(-) will apply [...]
diff --git a/libavcodec/tiff.c b/libavcodec/tiff.c index d93a02b07e..6a3ec3ef95 100644 --- a/libavcodec/tiff.c +++ b/libavcodec/tiff.c @@ -911,12 +911,23 @@ static int dng_decode_jpeg(AVCodecContext *avctx, AVFrame *frame, return 0; } + is_u16 = (s->bpp > 8); + /* Copy the outputted tile's pixels from 'jpgframe' to 'frame' (final buffer) */ /* See dng_blit for explanation */ - is_single_comp = (s->avctx_mjpeg->width == w * 2 && s->avctx_mjpeg->height == h / 2); + if (s->avctx_mjpeg->width == w * 2 && + s->avctx_mjpeg->height == h / 2 && + s->avctx_mjpeg->pix_fmt == AV_PIX_FMT_GRAY16LE) { + is_single_comp = 1; + } else if (s->avctx_mjpeg->width == w && + s->avctx_mjpeg->height == h && + s->avctx_mjpeg->pix_fmt == (is_u16 ? AV_PIX_FMT_GRAY16 : AV_PIX_FMT_GRAY8) + ) { + is_single_comp = 0; + } else + return AVERROR_INVALIDDATA; - is_u16 = (s->bpp > 8); pixel_size = (is_u16 ? sizeof(uint16_t) : sizeof(uint8_t)); if (is_single_comp && !is_u16) {
Fixes: out of array access Fixes: 23888/clusterfuzz-testcase-minimized-ffmpeg_AV_CODEC_ID_TIFF_fuzzer-6021365974171648.fuzz Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer <michael@niedermayer.cc> --- libavcodec/tiff.c | 15 +++++++++++++-- 1 file changed, 13 insertions(+), 2 deletions(-)