libopenjpegdec: check existence of image component data
libopenjpeg can return images with components without data.
This fixes segmentation faults.
Reviewed-by: Michael Niedermayer <michaelni@gmx.at>
Signed-off-by: Andreas Cadhalpun <Andreas.Cadhalpun@googlemail.com>
(cherry picked from commit 3ef5702926
)
Signed-off-by: Michael Niedermayer <michaelni@gmx.at>
This commit is contained in:

committed by
Michael Niedermayer

parent
7a12379463
commit
a1879d347e
@@ -356,6 +356,15 @@ static int libopenjpeg_decode_frame(AVCodecContext *avctx,
|
|||||||
goto done;
|
goto done;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
for (i = 0; i < image->numcomps; i++) {
|
||||||
|
if (!image->comps[i].data) {
|
||||||
|
av_log(avctx, AV_LOG_ERROR,
|
||||||
|
"Image component %d contains no data.\n", i);
|
||||||
|
ret = AVERROR_INVALIDDATA;
|
||||||
|
goto done;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
desc = av_pix_fmt_desc_get(avctx->pix_fmt);
|
desc = av_pix_fmt_desc_get(avctx->pix_fmt);
|
||||||
pixel_size = desc->comp[0].step_minus1 + 1;
|
pixel_size = desc->comp[0].step_minus1 + 1;
|
||||||
ispacked = libopenjpeg_ispacked(avctx->pix_fmt);
|
ispacked = libopenjpeg_ispacked(avctx->pix_fmt);
|
||||||
|
Reference in New Issue
Block a user