This is the mail archive of the
glibc-bugs@sourceware.org
mailing list for the glibc project.
[Bug libc/3087] Memory leak in allocate_dtv (in /lib/ld-2.3.5.so), SuSE Linux 10.0
- From: "mv at binarysec dot com" <sourceware-bugzilla at sourceware dot org>
- To: glibc-bugs at sources dot redhat dot com
- Date: 18 Aug 2006 14:02:15 -0000
- Subject: [Bug libc/3087] Memory leak in allocate_dtv (in /lib/ld-2.3.5.so), SuSE Linux 10.0
- References: <20060818105543.3087.chollstein@teracortex.com>
- Reply-to: sourceware-bugzilla at sourceware dot org
------- Additional Comments From mv at binarysec dot com 2006-08-18 14:02 -------
Subject: Re: New: Memory leak in allocate_dtv (in /lib/ld-2.3.5.so), SuSE Linux 10.0
Hi,
I confirmed this memory leak under Linux Debian libc 2.3.2 (it's an old
leak).
Regards,
Michael Vergoz
----- Original Message -----
From: "chollstein at teracortex dot com"
<sourceware-bugzilla@sourceware.org>
To: <glibc-bugs@sources.redhat.com>
Sent: Friday, August 18, 2006 12:55 PM
Subject: [Bug libc/3087] New: Memory leak in allocate_dtv (in
/lib/ld-2.3.5.so), SuSE Linux 10.0
> Found with valgrind in glibc 2.3.5, but on the internet it is also
> reported for
> glibc 2.4. After a pthread_create and pthread_join valgrind reports a
> memory
> leak. I could not find a definite answer, if this is an error or not. The
> number
> of reported leaks grows in server applications, where with each request a
> new
> handler thread is created.
>
>
>
> Valgrind output:
> ==5599== Memcheck, a memory error detector.
> ==5599== Copyright (C) 2002-2006, and GNU GPL'd, by Julian Seward et al.
> ==5599== Using LibVEX rev 1606, a library for dynamic binary translation.
> ==5599== Copyright (C) 2004-2006, and GNU GPL'd, by OpenWorks LLP.
> ==5599== Using valgrind-3.2.0, a dynamic binary instrumentation framework.
> ==5599== Copyright (C) 2000-2006, and GNU GPL'd, by Julian Seward et al.
> ==5599== For more details, rerun with: -v
> ==5599==
> ==5599==
> ==5599== ERROR SUMMARY: 0 errors from 0 contexts (suppressed: 15 from 1)
> ==5599== malloc/free: in use at exit: 68 bytes in 1 blocks.
> ==5599== malloc/free: 1 allocs, 0 frees, 68 bytes allocated.
> ==5599== For counts of detected errors, rerun with: -v
> ==5599== searching for pointers to 1 not-freed blocks.
> ==5599== checked 2,171,312 bytes.
> ==5599==
> ==5599== 68 bytes in 1 blocks are possibly lost in loss record 1 of 1
> ==5599== at 0x401C894: calloc (vg_replace_malloc.c:279)
> ==5599== by 0x400DCC8: allocate_dtv (in /lib/ld-2.3.5.so)
> ==5599== by 0x400DF3B: _dl_allocate_tls (in /lib/ld-2.3.5.so)
> ==5599== by 0x40388E4: pthread_create@@GLIBC_2.1 (in
> /lib/tls/libpthread-2.3.5.so)
> ==5599== by 0x804849F: main (in /home/holle/src/a.out)
> ==5599==
> ==5599== LEAK SUMMARY:
> ==5599== definitely lost: 0 bytes in 0 blocks.
> ==5599== possibly lost: 68 bytes in 1 blocks.
> ==5599== still reachable: 0 bytes in 0 blocks.
> ==5599== suppressed: 0 bytes in 0 blocks.
>
>
> Test program compiled under Linux SuSE 10.0 with
>
> gcc test.c -lpthread
>
> valgrind --tool=memcheck --leak-check=yes --num-callers=12
> --freelist-vol=100000000 --show-reachable=yes ./a.out
>
>
>
> Test program:
>
>
>
> #include <pthread.h>
>
> static void *func(void *param)
> {
> return NULL;
> }
>
>
> int main(int argc, char **argv)
> {
> pthread_t handle;
>
> pthread_create(&handle, NULL, func, NULL);
> pthread_join(handle, NULL);
>
> return 0;
> }
>
> --
> Summary: Memory leak in allocate_dtv (in /lib/ld-2.3.5.so), SuSE
> Linux 10.0
> Product: glibc
> Version: 2.4
> Status: NEW
> Severity: normal
> Priority: P1
> Component: libc
> AssignedTo: drepper at redhat dot com
> ReportedBy: chollstein at teracortex dot com
> CC: glibc-bugs at sources dot redhat dot com
>
>
> http://sourceware.org/bugzilla/show_bug.cgi?id=3087
>
> ------- You are receiving this mail because: -------
> You are on the CC list for the bug, or are watching someone who is.
>
--
http://sourceware.org/bugzilla/show_bug.cgi?id=3087
------- You are receiving this mail because: -------
You are on the CC list for the bug, or are watching someone who is.