[FFmpeg-devel] [PATCH] avutil/imgutils: use INT64_MAX for check stride and stride*(uint64_t)(h+128)
Steven Liu
lq at chinaffmpeg.org
Tue Sep 14 12:46:14 EEST 2021
look into the Picture size condition using INT_MAX is smaller,
so make it to INT64_MAX maybe large enough for Picture.
before patch:
[mjpeg @ 0x619000004b80] [IMGUTILS @ 0x7ffee7e71210] Picture size 15748x23622 is invalid
[image2 @ 0x616000000680] decoding for stream 0 failed
[image2 @ 0x616000000680] Could not find codec parameters for stream 0 (Video: mjpeg (Baseline), none(bt470bg/unknown/unknown)): unspecified size
Consider increasing the value for the 'analyzeduration' (0) and 'probesize' (5000000) options
Input #0, image2, from '/Users/liuqi/kuaishou/Test/docs/image.jpeg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 8995854 kb/s
after patch:
Input #0, image2, from '/Users/liuqi/kuaishou/Test/docs/image.jpeg':
Duration: 00:00:00.04, start: 0.000000, bitrate: 8995854 kb/s
Stream #0:0: Video: mjpeg (Baseline), yuvj420p(pc, bt470bg/unknown/unknown), 15748x23622 [SAR 200:200 DAR 2:3], 25 fps, 25 tbr, 25 tbn
Signed-off-by: Steven Liu <lq at chinaffmpeg.org>
---
libavutil/imgutils.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/libavutil/imgutils.c b/libavutil/imgutils.c
index 9ab5757cf6..03abf1cece 100644
--- a/libavutil/imgutils.c
+++ b/libavutil/imgutils.c
@@ -298,7 +298,7 @@ int av_image_check_size2(unsigned int w, unsigned int h, int64_t max_pixels, enu
stride = 8LL*w;
stride += 128*8;
- if ((int)w<=0 || (int)h<=0 || stride >= INT_MAX || stride*(uint64_t)(h+128) >= INT_MAX) {
+ if ((int)w<=0 || (int)h<=0 || stride >= INT64_MAX || stride*(uint64_t)(h+128) >= INT64_MAX) {
av_log(&imgutils, AV_LOG_ERROR, "Picture size %ux%u is invalid\n", w, h);
return AVERROR(EINVAL);
}
--
2.25.0
More information about the ffmpeg-devel
mailing list