fix corrupt frame leak
authorJames Zern <jzern@google.com>
Tue, 14 Jun 2011 00:29:49 +0000 (17:29 -0700)
committerJames Zern <jzern@google.com>
Tue, 14 Jun 2011 00:32:19 +0000 (17:32 -0700)
If setup_token_decoder reported an internal error the memory allocated
there would not be freed in the resulting call to _remove_decompressor.

Change-Id: Ib459de222d76b1910d6f449cdcd01663447dbdf6

vp8/decoder/decodframe.c
vp8/decoder/onyxd_if.c

index fec5172..734ab36 100644 (file)
@@ -533,7 +533,10 @@ static void stop_token_decoder(VP8D_COMP *pbi)
     VP8_COMMON *pc = &pbi->common;
 
     if (pc->multi_token_partition != ONE_PARTITION)
+    {
         vpx_free(pbi->mbc);
+        pbi->mbc = NULL;
+    }
 }
 
 static void init_frame(VP8D_COMP *pbi)
index 23a3c7d..4845cd0 100644 (file)
@@ -129,6 +129,7 @@ void vp8dx_remove_decompressor(VP8D_PTR ptr)
     vp8_de_alloc_overlap_lists(pbi);
 #endif
     vp8_remove_common(&pbi->common);
+    vpx_free(pbi->mbc);
     vpx_free(pbi);
 }