shithub: libvpx

Download patch

ref: 238b6be24bcd6cbb626d88d08fceb12622f7ad89
parent: 313c28f8b8fb88db23e009120388395dcd2eb13f
author: Jingning Han <jingning@google.com>
date: Wed Mar 11 12:29:13 EDT 2015

Prevent integer overflow in choose_partitioning

Re-arrange the multiplication and right shift operations to avoid
integer overflow in choose_partitioning.

Change-Id: Ib4005cafb410a67c1960486471d75b6ebe38c4e0

--- a/vp9/encoder/vp9_encodeframe.c
+++ b/vp9/encoder/vp9_encodeframe.c
@@ -611,12 +611,12 @@
       const BLOCK_SIZE bs = get_plane_block_size(bsize, pd);
 
       if (bs == BLOCK_INVALID)
-        uv_sad = INT_MAX;
+        uv_sad = UINT_MAX;
       else
         uv_sad = cpi->fn_ptr[bs].sdf(p->src.buf, p->src.stride,
                                      pd->dst.buf, pd->dst.stride);
 
-      x->color_sensitivity[i - 1] = uv_sad * 4 > y_sad;
+      x->color_sensitivity[i - 1] = uv_sad > (y_sad >> 2);
     }
 
     d = xd->plane[0].dst.buf;