summaryrefslogtreecommitdiff
path: root/elf/tst-leaks1.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>2006-03-15 19:26:13 +0000
committerUlrich Drepper <drepper@redhat.com>2006-03-15 19:26:13 +0000
commit2e0fc40cc49e8168f99b252dba4746c280b7a1d7 (patch)
tree652dcb36fee578c7f69c2d0c3029a70825e34839 /elf/tst-leaks1.c
parentfacac085dc7f5927a9f52d8e9abf84acf5c1b8d3 (diff)
downloadglibc-2e0fc40cc49e8168f99b252dba4746c280b7a1d7.tar.gz
[BZ #2451]
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.
Diffstat (limited to 'elf/tst-leaks1.c')
-rw-r--r--elf/tst-leaks1.c24
1 files changed, 24 insertions, 0 deletions
diff --git a/elf/tst-leaks1.c b/elf/tst-leaks1.c
new file mode 100644
index 0000000000..c9db5e0537
--- /dev/null
+++ b/elf/tst-leaks1.c
@@ -0,0 +1,24 @@
+#include <dlfcn.h>
+#include <mcheck.h>
+#include <stdlib.h>
+
+int
+main (void)
+{
+ mtrace ();
+
+ int ret = 0;
+ for (int i = 0; i < 10; i++)
+ {
+ void *h = dlopen (i < 5 ? "./tst-leaks1.c"
+ : "$ORIGIN/tst-leaks1.o", RTLD_LAZY);
+ if (h != NULL)
+ {
+ puts ("dlopen unexpectedly succeeded");
+ ret = 1;
+ dlclose (h);
+ }
+ }
+
+ return ret;
+}