From f499503073804e55540cad13743849a791449a98 Mon Sep 17 00:00:00 2001 From: Frank Plowman Date: Mon, 8 Apr 2024 18:20:59 +0000 Subject: [PATCH] lavc/vvc_parser: Fix integer overflow calculating framerate num_units_in_tick and time_scale are both 32-bit unsigned integers. Storing them as ints was causing overflows. Signed-off-by: Frank Plowman --- libavcodec/vvc_parser.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/vvc_parser.c b/libavcodec/vvc_parser.c index a6a5be27ae..e3501fa139 100644 --- a/libavcodec/vvc_parser.c +++ b/libavcodec/vvc_parser.c @@ -191,8 +191,8 @@ static void set_parser_ctx(AVCodecParserContext *s, AVCodecContext *avctx, if (sps->sps_ptl_dpb_hrd_params_present_flag && sps->sps_timing_hrd_params_present_flag) { - int num = sps->sps_general_timing_hrd_parameters.num_units_in_tick; - int den = sps->sps_general_timing_hrd_parameters.time_scale; + uint32_t num = sps->sps_general_timing_hrd_parameters.num_units_in_tick; + uint32_t den = sps->sps_general_timing_hrd_parameters.time_scale; if (num != 0 && den != 0) av_reduce(&avctx->framerate.den, &avctx->framerate.num,