avutil/timecode: Fix fps check
authorMichael Niedermayer <michael@niedermayer.cc>
Thu, 3 Dec 2015 02:14:11 +0000 (03:14 +0100)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 3 Dec 2015 03:09:48 +0000 (04:09 +0100)
The fps variable is explicitly set to -1 in case of some errors, the check must
thus be signed or the code setting it needs to use 0 as error code
the type of the field could be changed as well but its in an installed header

Fixes: integer overflow
Fixes: 9982cc157b1ea90429435640a989122f/asan_generic_3ad004a_3799_22cf198d9cd09928e2d9ad250474fa58.mov

Found-by: Mateusz "j00ru" Jurczyk and Gynvael Coldwind
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavutil/timecode.c

index 6432a3c..fa92df1 100644 (file)
@@ -153,7 +153,7 @@ static int check_fps(int fps)
 
 static int check_timecode(void *log_ctx, AVTimecode *tc)
 {
-    if (tc->fps <= 0) {
+    if ((int)tc->fps <= 0) {
         av_log(log_ctx, AV_LOG_ERROR, "Timecode frame rate must be specified\n");
         return AVERROR(EINVAL);
     }