changeset 196:9ffa69cd4ed6 libavcodec

This fixes segfaults because of uninitialized s->mbintra_table variable - patch by Vladimir Dergachev <volodya@mindspring.com>
author arpi_esp
date Fri, 11 Jan 2002 21:32:34 +0000
parents 92f726205082
children 21abf1b20016
files mpegvideo.c
diffstat 1 files changed, 5 insertions(+), 5 deletions(-) [+]
line wrap: on
line diff
--- a/mpegvideo.c	Fri Jan 11 21:27:04 2002 +0000
+++ b/mpegvideo.c	Fri Jan 11 21:32:34 2002 +0000
@@ -180,13 +180,13 @@
         s->coded_block = av_mallocz(y_size);
         if (!s->coded_block)
             goto fail;
+    }
 
         /* which mb is a intra block */
-        s->mbintra_table = av_mallocz(y_size/4);
+        s->mbintra_table = av_mallocz(s->mb_width * s->mb_height);
         if (!s->mbintra_table)
             goto fail;
-        memset(s->mbintra_table, 1, y_size/4);
-    }
+        memset(s->mbintra_table, 1, s->mb_width * s->mb_height);
     /* default structure is frame */
     s->picture_structure = PICT_FRAME;
 
@@ -209,7 +209,7 @@
     if (s->coded_block)
         free(s->coded_block);
     if (s->mbintra_table)
-        free(s->mbintra_table);
+        { free(s->mbintra_table);s->mbintra_table=NULL; }
     if (s->mbskip_table)
         free(s->mbskip_table);
     for(i=0;i<3;i++) {
@@ -234,7 +234,7 @@
         free(s->dc_val[0]);
         free(s->ac_val[0]);
         free(s->coded_block);
-        free(s->mbintra_table);
+        { free(s->mbintra_table);s->mbintra_table=NULL; }
     }
     if (s->mbskip_table)
         free(s->mbskip_table);