[FFmpeg-devel] [PATCH] avutil/timecode: Avoid fps overflow

Michael Niedermayer michael at niedermayer.cc
Mon Mar 1 16:32:09 EET 2021


Fixes: Integer overflow and division by 0
Fixes: poc-202102-div.mov

Found-by: 1vanChen of NSFOCUS Security Team
Signed-off-by: Michael Niedermayer <michael at niedermayer.cc>
---
 libavutil/timecode.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/libavutil/timecode.c b/libavutil/timecode.c
index b1b504edbf..2fc3295e25 100644
--- a/libavutil/timecode.c
+++ b/libavutil/timecode.c
@@ -114,8 +114,8 @@ char *av_timecode_make_string(const AVTimecode *tc, char *buf, int framenum)
     }
     ff = framenum % fps;
     ss = framenum / fps        % 60;
-    mm = framenum / (fps*60)   % 60;
-    hh = framenum / (fps*3600);
+    mm = framenum / (fps*60LL) % 60;
+    hh = framenum / (fps*3600LL);
     if (tc->flags & AV_TIMECODE_FLAG_24HOURSMAX)
         hh = hh % 24;
     snprintf(buf, AV_TIMECODE_STR_SIZE, "%s%02d:%02d:%02d%c%02d",
-- 
2.17.1



More information about the ffmpeg-devel mailing list