[FFmpeg-devel] [PATCH] lavc/vvc_parser: Fix integer overflow calculating framerate

James Almer jamrial at gmail.com
Mon Apr 8 22:03:52 EEST 2024


On 4/8/2024 3:20 PM, Frank Plowman wrote:
> 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 <post at frankplowman.com>
> ---
>   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,

LGTM.


More information about the ffmpeg-devel mailing list