*** glibc detected *** double free or corruption (!prev): [...]

Alexander Gretencord arutha at gmx.de
Fri May 2 15:04:55 CEST 2008


On Friday 02 May 2008, Stefan U. Hegner wrote:
> Maximilian Wilhelm schrieb:
> > Am Thursday, den  1 May hub Stefan U. Hegner folgendes in die Tasten:
> >>     *** glibc detected *** double free or corruption (!prev):
> >> 0x00000000005510a0 ***
> > Das kann ein einfacher Programmierfehler sein.
> Finde ich nicht wahrscheinlich bei einem Paket aus Etch, oder? Es sei
> denn, es knallt nut unter ganz bestimmten Rahmenbedingungen.

Das ist meist genau das Problem, das mit den Rahmenbedingungen. Mailinglisten 
wie Bugtraq sind voll von solchen total unwahrscheinlichen Problemen in fuer 
Produktion freigegebenen Programmen :)

> > Optimalerweise solltest Du dann sehen können, wo es geknallt hat.
>
> So weit so gut. - Aber was ist der Sinn davon? Dann habe ich nochmal so
> einen Fehler nachgebaut, und dann? Oder willst Du mir sagen, dass das
> Problem möglicherweise außerhalb von Mondoarchive liegt und mir Dein
> Programm helfen soll, jenes genauer zu lokalisieren?

Ich denke das war einfach dazu da, um zu erklaeren, wie einfach ein solcher 
Fehler passieren kann und um zu zeigen, wie du in Mondoarchive danach suchen 
kannst.

Wenn in Mondo jetzt zum Beispiel nur unter einer wie von dir vermuteten 
bestimmten Rahmenbedingung der zweite free gemacht wird, knallts. Ebenso wenn 
der Zeiger fuer den Speicher, der gefree()t werden soll leider mit etwas 
unsinnigem ueberschrieben wurde. Dazu siehe auch die Antwort von Andre, der 
Valgrind ist da echt fein, da er einiges an Fehlern anzeigt, was dir 
beim "Normaldurchlauf" gar nicht auffaellt, sondern erst bei den "bestimmten 
Rahmenbedingungen".


Alex



More information about the Linux mailing list