avcodec/mjpegdec: Check number of components for JPEG-LS
Fixes out of array accesses
Fixes: asan_heap-oob_1c1a4ea_1242_cov_2274415971_TESTcmyk.jpg
Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
(cherry picked from commit fabbfaa095
)
Conflicts:
libavcodec/mjpegdec.c
This commit is contained in:
@@ -347,9 +347,12 @@ int ff_mjpeg_decode_sof(MJpegDecodeContext *s)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
if(s->ls){
|
if(s->ls){
|
||||||
if(s->nb_components > 1)
|
if(s->nb_components == 3) {
|
||||||
s->avctx->pix_fmt = PIX_FMT_RGB24;
|
s->avctx->pix_fmt = PIX_FMT_RGB24;
|
||||||
else if(s->bits <= 8)
|
} else if (s->nb_components != 1) {
|
||||||
|
av_log(s->avctx, AV_LOG_ERROR, "Unsupported number of components %d\n", s->nb_components);
|
||||||
|
return AVERROR_PATCHWELCOME;
|
||||||
|
} else if (s->bits <= 8)
|
||||||
s->avctx->pix_fmt = PIX_FMT_GRAY8;
|
s->avctx->pix_fmt = PIX_FMT_GRAY8;
|
||||||
else
|
else
|
||||||
s->avctx->pix_fmt = PIX_FMT_GRAY16;
|
s->avctx->pix_fmt = PIX_FMT_GRAY16;
|
||||||
|
Reference in New Issue
Block a user