]> granicus.if.org Git - libvpx/commitdiff
Fix out of bounds read in update_mbgraph_frame_stats
authorAdrian Grange <agrange@google.com>
Fri, 9 Dec 2011 20:47:57 +0000 (12:47 -0800)
committerAdrian Grange <agrange@google.com>
Fri, 9 Dec 2011 20:47:57 +0000 (12:47 -0800)
update_mbgraph_frame_stats used xd->mode_info_context
before it had been setup, resulting in potentially
random accesses of uninitialized memory.

This fix allocates a local MODE_INFO structure to hold
the data generated in the function.

Change-Id: Ic9e75610008ce0e2d690e8e583c21582fee6fc45

vp8/encoder/mbgraph.c

index 3403f1724d657ac40179baaa4c8fb3f14461f21e..100a036fd247dc101aab2a8fa59367f503c76043 100644 (file)
@@ -331,6 +331,7 @@ static void update_mbgraph_frame_stats
     int mb_col, mb_row, offset = 0;
     int mb_y_offset = 0, arf_y_offset = 0, gld_y_offset = 0;
     int_mv arf_top_mv, gld_top_mv;
+    MODE_INFO mi_local;
 
     // Set up limit values for motion vectors to prevent them extending outside the UMV borders
     arf_top_mv.as_int = 0;
@@ -341,6 +342,7 @@ static void update_mbgraph_frame_stats
     xd->dst.y_stride  = buf->y_stride;
     xd->pre.y_stride  = buf->y_stride;
     xd->dst.uv_stride = buf->uv_stride;
+    xd->mode_info_context = &mi_local;
 
     for (mb_row = 0; mb_row < cm->mb_rows; mb_row++)
     {