variance_avx2.c: UBSAN/IOC fix
authorYaowu Xu <yaowu@google.com>
Tue, 31 May 2016 23:17:42 +0000 (16:17 -0700)
committerYaowu Xu <yaowu@google.com>
Tue, 31 May 2016 23:44:35 +0000 (16:44 -0700)
BUG=https://bugs.chromium.org/p/webm/issues/detail?id=1222

Change-Id: Ifb3bedf9b4e1b007b21aebaa4beb9ba50424efef

vpx_dsp/x86/variance_avx2.c

index 7851a98..f8c9711 100644 (file)
@@ -45,7 +45,7 @@ unsigned int vpx_variance16x16_avx2(const uint8_t *src, int src_stride,
   int sum;
   variance_avx2(src, src_stride, ref, ref_stride, 16, 16,
                 sse, &sum, vpx_get16x16var_avx2, 16);
-  return *sse - (((unsigned int)sum * sum) >> 8);
+  return *sse - (((uint32_t)((int64_t)sum * sum)) >> 8);
 }
 
 unsigned int vpx_mse16x16_avx2(const uint8_t *src, int src_stride,