Purify errors

Fabien Tassin fta at sofaraway.org
Tue Feb 13 15:21:24 UTC 2001


According to Alex Kiernan:
> 
> With apologies for the length... looks like theres a few interesting
> ones shown up overnight (trimmed to just those):
> 
> ****  Purify instrumented /news/bin/innd (pid 25507, forked from pid 25498)  ****
> ABR: Array bounds read:
>   * This is occurring while in:
> 	strlen         [rtlib.o]
> 	x_strdup       [xmalloc.c:116]
> 	ARTcontrol     [art.c:1291]
> 	ARTpost        [art.c:2677]
> 	NCpostit       [nc.c:194]
> 	NCproc         [nc.c:972]
>   * Reading 913 bytes from 0x779428 in the heap (1 byte at 0x7797b8 illegal).
>   * Address 0x779428 is 3184 bytes into a malloc'd block at 0x7787b8 of 4096 bytes.
 
> Purify Heap Analysis (combining suppressed and unsuppressed blocks)
>                          Blocks        Bytes
>               Leaked        654      1061189
>   Potentially Leaked         61       121919
>               In-Use     116257     11233297
>   ----------------------------------------
>      Total Allocated     116972     12416405

Are these stats taken on the fly or is a complete session (start/run/stop)
needed ?

I've tested the malloc checker built in glibc > 2.1 for a complete 'short'
run, it reports far more than this (hundreds of unfreed locations).
Unfortunatly, it (mcheck) is only able to report the name of the direct caller
which is often the x_malloc() wrapper. I usually use dmalloc to detect buffer
overflows/fence-posts but it is not easily usable in INN due to name
conflicts. I'll see if I can do something for this in a near future.

-- 
Fabien Tassin -+- fta at sofaraway.org


More information about the inn-workers mailing list