On 16-01-2020 09:07 pm, Anton Khirnov wrote:
Quoting Gyan Doshi (2020-01-16 13:59:47)
---
libavfilter/vf_scale.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/libavfilter/vf_scale.c b/libavfilter/vf_scale.c
index d46c767e70..70978345e8 100644
--- a/libavfilter/vf_scale.c
+++ b/libavfilter/vf_scale.c
@@ -498,10 +498,8 @@ static int config_props(AVFilterLink *outlink)
scale->force_original_aspect_ratio,
scale->force_divisible_by);
- if (scale->w > INT_MAX ||
- scale->h > INT_MAX ||
- (scale->h * inlink->w) > INT_MAX ||
- (scale->w * inlink->h) > INT_MAX)
+ if (((int64_t)scale->h * inlink->w) > INT_MAX ||
+ ((int64_t)scale->w * inlink->h) > INT_MAX)
This only works when int is 32bit, which is not guaranteed to be true.
The correct way to test it is something like
if (scale->h > INT_MAX / inlink->w)
Makes sense. I took my cue from similar checks in other scale filters.
Should convert those too.
Although I do wonder why this check exists at this time. All it results
in is a log msg; any invalid values aren't adjusted. Should this be
replaced with av_image_check_size2 or is there another reason for this
check?
Gyan
_______________________________________________
ffmpeg-devel mailing list
ffmpeg-devel@ffmpeg.org
https://ffmpeg.org/mailman/listinfo/ffmpeg-devel
To unsubscribe, visit link above, or email
ffmpeg-devel-requ...@ffmpeg.org with subject "unsubscribe".