Age | Commit message (Collapse) | Author | Files | Lines |
|
The test tst-leaks1 exercises calling dlopen with a $ORIGIN DST.
This results in a theoretical leak e.g.
Memory not freed:
-----------------
Address Size Caller
0x0000000001d766c0 0x21 at 0x7fb1bd8bf4ab
Or as seen via valgrind:
==27582== 33 bytes in 1 blocks are still reachable in loss record 1 of 1
==27582== at 0x4C2CB6B: malloc (vg_replace_malloc.c:299)
==27582== by 0x40124AA: _dl_get_origin (dl-origin.c:50)
==27582== by 0x4007DB9: expand_dynamic_string_token (dl-load.c:382)
==27582== by 0x400899C: _dl_map_object (dl-load.c:2160)
==27582== by 0x4013020: dl_open_worker (dl-open.c:224)
==27582== by 0x5166F9B: _dl_catch_exception (dl-error-skeleton.c:198)
==27582== by 0x4012BD9: _dl_open (dl-open.c:594)
==27582== by 0x4E39EF5: dlopen_doit (dlopen.c:66)
==27582== by 0x5166F9B: _dl_catch_exception (dl-error-skeleton.c:198)
==27582== by 0x516700E: _dl_catch_error (dl-error-skeleton.c:217)
==27582== by 0x4E3A514: _dlerror_run (dlerror.c:162)
==27582== by 0x4E39F70: dlopen@@GLIBC_2.2.5 (dlopen.c:87)
There is no real leak.
The calling link map (the executable's link map) has it's l_origin
expanded for future use as part of _dl_get_origin, and that results
in the main executable link map having a N-byte allocation for
l->l_origin that is never freed since the executable's link map is
just a part of the process.
To take this into account we do one dlopen with $ORIGIN before
calling mtrace to force the initialization of the executable link
map.
Signed-off-by: Carlos O'Donell <carlos@redhat.com>
|
|
Replaced test-skeleton.c with support/test-driver.c and
adjusted the tests accordinly.
Checked on x86_64.
* elf/next.c: Import support/test-driver.c instead of
test-skeleton.c and delete TEST_FUNCTION macro definition.
* elf/nodelete.c: Likewise.
* elf/order2.c: Likewise.
* elf/tst-_dl_addr_inside_object.c: Likewise.
* elf/tst-addr1.c: Likewise.
* elf/tst-align.c: Likewise.
* elf/tst-align2.c: Likewise.
* elf/tst-audit11.c: Likewise.
* elf/tst-audit12.c: Likewise.
* elf/tst-audit2.c: Likewise.
* elf/tst-audit9.c: Likewise.
* elf/tst-auxv.c: Likewise and define
TEST_FUNCTION_ARGV macro.
* elf/tst-deep1.c: Likewise.
* elf/tst-dl-iter-static.c: Likewise.
* elf/tst-dlmodcount.c: Likewise.
* elf/tst-dlmopen1.c: Likewise.
* elf/tst-dlmopen2.c: Likewise.
* elf/tst-dlmopen3.c: Likewise.
* elf/tst-dlopen-aout.c: Likewise.
* elf/tst-dlopenrpath.c: Likewise.
* elf/tst-dlsym-error.c: Likewise.
* elf/tst-execstack-needed.c: Likewise.
* elf/tst-execstack-prog.c: Likewise.
* elf/tst-execstack.c: Likewise.
* elf/tst-global1.c: Likewise.
* elf/tst-gnu2-tls1.c: Likewise.
* elf/tst-latepthread.c: Likewise.
* elf/tst-leaks1.c: Likewise.
* elf/tst-linkall-static.c: Likewise.
(do_test): New function.
* elf/tst-nodelete-opened.c: Likewise.
* elf/tst-nodelete.cc: Likewise.
* elf/tst-nodelete2.c: Likewise.
* elf/tst-noload.c: Likewise.
* elf/tst-null-argv.c: Likewise and define
TEST_FUNCTION_ARGV marcro.
* elf/tst-order-main.c: Likewise.
* elf/tst-pathopt.c: Likewise.
* elf/tst-pie2.c: Likewise.
* elf/tst-piemod1.c: Likewise.
* elf/tst-prelink.c: Likewise.
* elf/tst-protected1a.c: Likewise.
* elf/tst-protected1b.c: Likewise.
* elf/tst-ptrguard1.c: Likewise, import getopt.h,
and define _GNU_SOURCE macro.
(cmdline_process_function): New function.
* elf/tst-relsort1.c: Likewise.
* elf/tst-stackguard1.c: Likewise, import getopt.h,
and define _GNU_SOURCE macro.
(cmdline_process_function): New function.
* elf/tst-thrlock.c: Likewise.
* elf/tst-tls-dlinfo.c: Likewise.
* elf/tst-tls-manydynamic.c: Likewise and import
support/xthread.h.
* elf/tst-tls1.c: Likewise.
* elf/tst-tls10.c: Likewise.
* elf/tst-tls11.c: Likewise.
* elf/tst-tls12.c: Likewise.
* elf/tst-tls13.c: Likewise.
* elf/tst-tls14.c: Likewise.
* elf/tst-tls15.c: Likewise.
* elf/tst-tls16.c: Likewise.
* elf/tst-tls17.c: Likewise.
* elf/tst-tls18.c: Likewise.
* elf/tst-tls19.c: Likewise.
* elf/tst-tls2.c: Likewise.
* elf/tst-tls3.c: Likewise.
* elf/tst-tls4.c: Likewise.
* elf/tst-tls5.c: Likewise.
* elf/tst-tls6.c: Likewise.
* elf/tst-tls7.c: Likewise.
* elf/tst-tls8.c: Likewise.
* elf/tst-tls9.c: Likewise.
* elf/tst-tlsalign-extern.c: Likewise.
* elf/tst-tlsalign.c: Likewise.
* elf/tst-unique1.c: Likewise.
* elf/tst-unique2.c: Likewise.
* elf/vismain.c: Likewise.
|
|
These tests were skipped by the use-test-skeleton conversion done in
commit 29955b5d because they were reused in other tests via the #include
directive, and so deemed worth an inspection before they were modified.
This has now been done.
ChangeLog:
2015-07-09 Arjun Shankar <arjun.is@lostca.se>
* elf/tst-leaks1.c (main): Converted to ...
(do_test): ... this.
(TEST_FUNCTION): New macro.
Include test-skeleton.c.
* localedata/tst-langinfo.c (main): Converted to ...
(do_test): ... this.
(TEST_FUNCTION): New macro.
Include test-skeleton.c.
* math/test-fpucw.c (main): Converted to ...
(do_test): ... this.
(TEST_FUNCTION): New macro.
Include test-skeleton.c.
* math/test-tgmath.c (main): Converted to ...
(do_test): ... this.
(TEST_FUNCTION): New macro.
Include test-skeleton.c.
* math/test-tgmath2.c (main): Converted to ...
(do_test): ... this.
(TEST_FUNCTION): New macro.
Include test-skeleton.c.
* setjmp/tst-setjmp.c (main): Converted to ...
(do_test): ... this.
(TEST_FUNCTION): New macro.
Include test-skeleton.c.
* stdio-common/tst-sscanf.c (main): Converted to ...
(do_test): ... this.
(TEST_FUNCTION): New macro.
Include test-skeleton.c.
* sysdeps/x86_64/tst-audit6.c (main): Converted to ...
(do_test): ... this.
(TEST_FUNCTION): New macro.
Include test-skeleton.c.
|
|
From Alexandre Oliva <aoliva@redhat.com>.
* elf/tst-audit2.c: New file.
* elf/Makefile (tests): Add it.
($(objpfx)tst-audit2.out): New target.
(tst-audit2-ENV): New variable.
* elf/tst-leaks1.c: Include <stdio.h>.
|
|
2006-03-13 Jakub Jelinek <jakub@redhat.com>
[BZ #2451]
* elf/dl-load.c (open_verify): Add free_name argument, if true, free
name before calling lose.
(open_path): Adjust caller.
(_dl_map_object): Adjust callers. Free name_copy before calling
_dl_signal_error.
* elf/Makefile: Add rules to build and run tst-leaks1.
* elf/tst-leaks1.c: New test.
|
|
|
|
|