]> granicus.if.org Git - handbrake/commitdiff
Fix a couple problem exposed through some valgrind testing. use of freed
authorjstebbins <jstebbins.hb@gmail.com>
Mon, 15 Sep 2008 15:01:08 +0000 (15:01 +0000)
committerjstebbins <jstebbins.hb@gmail.com>
Mon, 15 Sep 2008 15:01:08 +0000 (15:01 +0000)
memory in detelecine and use of uninitialized memory in decmpeg2

git-svn-id: svn://svn.handbrake.fr/HandBrake/trunk@1700 b64f7644-9d1e-0410-96f1-a4d463321fa5

libhb/decmpeg2.c
libhb/detelecine.c

index 4972d04687b850d12ec681ab30efae7d81ddb874..4c8f5009b37d66c9ecd4632ac10d8e73135bd94c 100644 (file)
@@ -420,6 +420,8 @@ static int decmpeg2Info( hb_work_object_t *w, hb_work_info_t *info )
 {
     hb_work_private_t *pv = w->private_data;
 
+    memset( info, 0, sizeof(*info) );
+
     if ( pv && pv->libmpeg2 && pv->libmpeg2->info && pv->libmpeg2->info->sequence )
     {
         hb_libmpeg2_t *m = pv->libmpeg2;
index a305cb4d20a6065ba63802e837646759b909b35c..d3757cb69a97754b76dc1b1d2fcde54b28d2b2cb 100644 (file)
@@ -567,15 +567,17 @@ void pullup_free_context( struct pullup_context * c )
 
     free( c->buffers );
 
-    f = c->head;
-    do
+    f = c->head->next;
+    while( f != c->head )
     {
         free( f->diffs );
         free( f->comb );
         f = f->next;
         free( f->prev );
     }
-    while( f != c->head );
+    free( f->diffs );
+    free( f->comb );
+    free(f);
 
     free( c->frame );
     free( c );