]> granicus.if.org Git - libvpx/commitdiff
vp8_update_rate_correction_factors: fix integer overflow
authorJames Zern <jzern@google.com>
Sat, 6 Nov 2021 17:42:46 +0000 (10:42 -0700)
committerJames Zern <jzern@google.com>
Mon, 8 Nov 2021 21:04:09 +0000 (13:04 -0800)
the intermediate value in the correction_factor calculation may exceed
integer bounds

Bug: b/189602769
Change-Id: I75726b12f3095663911d78333f3ea26eb6dee21e

vp8/encoder/ratectrl.c

index 4b76cc642969f87f6dee616653b1da05d485d979..d591680ce382984df7054eb29b74ed6289fe0765 100644 (file)
@@ -1079,8 +1079,8 @@ void vp8_update_rate_correction_factors(VP8_COMP *cpi, int damp_var) {
 
   /* Work out a size correction factor. */
   if (projected_size_based_on_q > 0) {
-    correction_factor =
-        (100 * cpi->projected_frame_size) / projected_size_based_on_q;
+    correction_factor = (int)((100 * (int64_t)cpi->projected_frame_size) /
+                              projected_size_based_on_q);
   }
 
   /* More heavily damped adjustment used if we have been oscillating