[Ffmpeg-devel] Bug in libavcodec/utils.c as of r5799

Ross Mellgren r
Thu Jul 20 02:24:01 CEST 2006


Hey,

Spent today tracking down a bug in the bookkeeping in utils.c which  
caused a segfault in ffmpeg-php with apache, and thought I'd share so  
maybe someone could commit it.

The bug is that when av_free_static is called, it nulls array_static,  
but does not reset the bookkeeping counters allocated_static and  
last_static, which caused av_fast_realloc to later return a NULL (the  
current value of array_static), causing in my case init_rl to  
segfault. Clearing out these counters in av_free_static mops up the  
issue.

-Ross

--- ffmpeg/libavcodec/utils.c   2006-07-18 07:00:55.000000000 -0400
+++ ffmpeg.new/libavcodec/utils.c       2006-07-19 20:03:06.000000000  
-0400
@@ -144,10 +144,12 @@
{
     while(last_static){
         av_freep(&array_static[--last_static]);
     }
     av_freep(&array_static);
+    allocated_static = 0;
+    last_static = 0;
}

/**
  * Call av_free_static automatically before it's too late
  */



More information about the ffmpeg-devel mailing list