avcodec/utils: Fix signed integer overflow in rc_initial_buffer_occupancy initialization
authorVitaly Buka <vitalybuka-at-google.com@ffmpeg.org>
Sun, 20 Aug 2017 18:56:47 +0000 (11:56 -0700)
committerMichael Niedermayer <michael@niedermayer.cc>
Thu, 24 Aug 2017 10:03:33 +0000 (12:03 +0200)
Signed integer overflow is undefined behavior.
Detected with clang and -fsanitize=signed-integer-overflow

Signed-off-by: Vitaly Buka <vitalybuka@google.com>
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
(cherry picked from commit 8c2bb10ddfef1f151b9455d152c9aca91140a4b0)
Signed-off-by: Michael Niedermayer <michael@niedermayer.cc>
libavcodec/utils.c

index d5e1cc8..72fd686 100644 (file)
@@ -1487,7 +1487,7 @@ FF_ENABLE_DEPRECATION_WARNINGS
         }
 
         if (!avctx->rc_initial_buffer_occupancy)
-            avctx->rc_initial_buffer_occupancy = avctx->rc_buffer_size * 3 / 4;
+            avctx->rc_initial_buffer_occupancy = avctx->rc_buffer_size * 3LL / 4;
 
         if (avctx->ticks_per_frame && avctx->time_base.num &&
             avctx->ticks_per_frame > INT_MAX / avctx->time_base.num) {