From 9cadadb9a12aaf30b196c896073c473d91a2bdf0 Mon Sep 17 00:00:00 2001 From: Anton Khirnov Date: Sun, 1 Sep 2024 15:41:24 +0200 Subject: [PATCH] lavc/hevc: check framerate num/den to be strictly positive Rather than just != 0. These values are read as uint32 and can become negative when cast to int. (cherry picked from commit eec1a7a6bb952c09945d908d2d5de35909516778) Signed-off-by: Anton Khirnov --- libavcodec/hevc_parser.c | 2 +- libavcodec/hevcdec.c | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/libavcodec/hevc_parser.c b/libavcodec/hevc_parser.c index 99a4272fad..3f4702001e 100644 --- a/libavcodec/hevc_parser.c +++ b/libavcodec/hevc_parser.c @@ -105,7 +105,7 @@ static int hevc_parse_slice_header(AVCodecParserContext *s, H2645NAL *nal, den = ps->sps->vui.vui_time_scale; } - if (num != 0 && den != 0) + if (num > 0 && den > 0) av_reduce(&avctx->framerate.den, &avctx->framerate.num, num, den, 1 << 30); diff --git a/libavcodec/hevcdec.c b/libavcodec/hevcdec.c index 425020436d..d729925bdb 100644 --- a/libavcodec/hevcdec.c +++ b/libavcodec/hevcdec.c @@ -371,7 +371,7 @@ static void export_stream_params(HEVCContext *s, const HEVCSPS *sps) den = sps->vui.vui_time_scale; } - if (num != 0 && den != 0) + if (num > 0 && den > 0) av_reduce(&avctx->framerate.den, &avctx->framerate.num, num, den, 1 << 30); }