[vdr] *** glibc detected *** double free or corruption 1.4.2-1 Patch

Klaus Schmidinger Klaus.Schmidinger at cadsoft.de
Mon Sep 4 17:22:03 CEST 2006


martin wrote:
> 
> I’ve problems when implementing the latest 1.4.2.-1 Patch. Here’s the 
> problem: I used VDR-Admin to change a timer setting. Every time I try to 
> save the changed timer, VDR crashes, please see attached strace.
> 
>  
> 
> I’ve checked against all 1.4.1-* versions, with bigpatch, without. It 
> must be something with the latest 1.4.2-1 Patch.

The only thing I could imagine causing this is the change to
the cTimer::operator=() function.

Please try adding some debug output before and after the
free(aux) calls, as in:

cTimer::~cTimer()
{
   fprint(stderr, "A %p\n", aux);
   free(aux);
   fprint(stderr, "B\n");
}

cTimer& cTimer::operator= (const cTimer &Timer)
{
   startTime    = Timer.startTime;
   stopTime     = Timer.stopTime;
   lastSetEvent = 0;
   recording    = Timer.recording;
   pending      = Timer.pending;
   inVpsMargin  = Timer.inVpsMargin;
   flags        = Timer.flags;
   channel      = Timer.channel;
   day          = Timer.day;
   weekdays     = Timer.weekdays;
   start        = Timer.start;
   stop         = Timer.stop;
   priority     = Timer.priority;
   lifetime     = Timer.lifetime;
   strncpy(file, Timer.file, sizeof(file));
   fprint(stderr, "C %p\n", aux);
   free(aux);
   fprint(stderr, "D\n");
   aux = Timer.aux ? strdup(Timer.aux) : NULL;
   event = NULL;
   return *this;
}


Let me know what the last output is.

Klaus



More information about the vdr mailing list