avfilter/vf_scale: split rational multiply

Fixes: integer overflow in SAR
Found-by: jiale yao
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
This commit is contained in:
Michael Niedermayer
2026-05-31 21:20:54 +00:00
committed by michaelni
parent 59619a1917
commit 97ea5da419
+2 -1
View File
@@ -658,7 +658,8 @@ static int config_props(AVFilterLink *outlink)
if (scale->reset_sar)
outlink->sample_aspect_ratio = (AVRational){1, 1};
else if (inlink0->sample_aspect_ratio.num){
outlink->sample_aspect_ratio = av_mul_q((AVRational){outlink->h * inlink0->w, outlink->w * inlink0->h}, inlink0->sample_aspect_ratio);
AVRational q = av_div_q((AVRational){inlink0->w, inlink0->h}, (AVRational){outlink->w, outlink->h});
outlink->sample_aspect_ratio = av_mul_q(q, inlink0->sample_aspect_ratio);
} else
outlink->sample_aspect_ratio = inlink0->sample_aspect_ratio;