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

Udo Richter udo_richter at gmx.de
Mon Sep 4 18:27:39 CEST 2006


Hans-Werner Hilse wrote:
> There had been a "free(aux);" added in that patch in timers.c in the
> assignment operator ("=") function. Probably it didn't took an earlier
> (conditional?) free() into account and such rans into a glibc-assertion.

This seems to be at least one source of bugs. I've detected this with 
Valgrind:

==4652== Invalid free() / delete / delete[]
==4652==    at 0x1B904B04: free (vg_replace_malloc.c:152)
==4652==    by 0x8103F5F: cTimer::operator=(cTimer const&) (timers.c:108)
==4652==    by 0x80FE349: cSVDRP::CmdMODT(char const*) (svdrp.c:1136)
==4652==    by 0x81015C1: cSVDRP::Process() (svdrp.c:1563)
==4652==    by 0x80B3458: cInterface::GetKey(bool) (interface.c:37)
==4652==    by 0x810D919: main (vdr.c:866)
==4652==  Address 0x1BEEAC90 is 0 bytes inside a block of size 63 free'd
==4652==    at 0x1B904B04: free (vg_replace_malloc.c:152)
==4652==    by 0x8104D6F: cTimer::Parse(char const*) (timers.c:244)
==4652==    by 0x80FE493: cSVDRP::CmdMODT(char const*) (svdrp.c:1132)
==4652==    by 0x81015C1: cSVDRP::Process() (svdrp.c:1563)
==4652==    by 0x80B3458: cInterface::GetKey(bool) (interface.c:37)
==4652==    by 0x810D919: main (vdr.c:866)


However, there are also some of these:

==4652== Invalid write of size 4
==4652==    at 0x80FCA0E: cSocket::Open() (svdrp.c:69)
==4652==    by 0x80FCB91: cSocket::Accept() (svdrp.c:110)
==4652==    by 0x1BD13C34: ???
==4652==    by 0x1BD10F83: ???
==4652==    by 0x8103114: cThread::StartThread(cThread*) (thread.c:244)
==4652==    by 0x1B935B62: start_thread (in /lib/tls/libpthread-0.60.so)
==4652==    by 0x1BB28189: clone (in /lib/tls/libc-2.3.2.so)
==4652==  Address 0x1F70F4A4 is 4 bytes inside a block of size 12 free'd
==4652==    at 0x1B904CA8: operator delete(void*) (vg_replace_malloc.c:155)
==4652==    by 0x1BD13EBA: ???
==4652==    by 0x810882D: cListBase::Clear() (tools.c:1445)
==4652==    by 0x810D0B0: main (vdr.c:1226)

Cheers,


Udo



More information about the vdr mailing list