From 92b194919199e6ea978ff6e120e9f9034b2bd299 Mon Sep 17 00:00:00 2001 From: Michael Niedermayer Date: Sun, 17 Jan 2021 22:10:02 +0100 Subject: [PATCH] avformat/sccdec: Use larger intermediate for ts/next_ts computation Fixes: signed integer overflow: 92237203 * 33 cannot be represented in type 'int' Fixes: 26910/clusterfuzz-testcase-minimized-ffmpeg_dem_SCC_fuzzer-6603769487949824 Found-by: continuous fuzzing process https://github.com/google/oss-fuzz/tree/master/projects/ffmpeg Signed-off-by: Michael Niedermayer --- libavformat/sccdec.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/libavformat/sccdec.c b/libavformat/sccdec.c index 751dee7c6c..1786520944 100644 --- a/libavformat/sccdec.c +++ b/libavformat/sccdec.c @@ -93,7 +93,7 @@ static int scc_read_header(AVFormatContext *s) break; } - ts = (hh * 3600LL + mm * 60LL + ss) * 1000LL + fs * 33; + ts = (hh * 3600LL + mm * 60LL + ss) * 1000LL + fs * 33LL; while (!ff_text_eof(&tr)) { len = ff_subtitles_read_line(&tr, line2, sizeof(line2)); @@ -117,7 +117,7 @@ static int scc_read_header(AVFormatContext *s) } } - next_ts = (hh * 3600LL + mm * 60LL + ss) * 1000LL + fs * 33; + next_ts = (hh * 3600LL + mm * 60LL + ss) * 1000LL + fs * 33LL; pos = ff_text_pos(&tr); lline = (char *)&line;