[prev in list] [next in list] [prev in thread] [next in thread]
List: uclibc-cvs
Subject: svn commit: branches/uClibc_0_9_29/test/dlopen
From: carmelo () uclibc ! org (carmelo at uclibc ! org)
Date: 2008-01-22 16:25:38
Message-ID: 20080122162538.48B56120107 () busybox ! net
[Download RAW message or body]
Author: carmelo
Date: 2008-01-22 08:25:37 -0800 (Tue, 22 Jan 2008)
New Revision: 20886
Log:
Test case to exploit dladdr bug
Signed-off-by: Filippo Arcidiacono <filippo.arcidiacono at st.com>
Added:
branches/uClibc_0_9_29/test/dlopen/dladdr.c
Modified:
branches/uClibc_0_9_29/test/dlopen/Makefile
Changeset:
Modified: branches/uClibc_0_9_29/test/dlopen/Makefile
===================================================================
--- branches/uClibc_0_9_29/test/dlopen/Makefile 2008-01-22 16:09:01 UTC (rev 20885)
+++ branches/uClibc_0_9_29/test/dlopen/Makefile 2008-01-22 16:25:37 UTC (rev 20886)
@@ -4,7 +4,7 @@
# rules need a little love to work with glibc ...
export UCLIBC_ONLY := 1
-TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk
+TESTS := dltest dltest2 dlstatic test1 test2 test3 dlundef dlafk dladdr
include ../Test.mak
@@ -19,6 +19,7 @@
LDFLAGS_test1 := -ldl
LDFLAGS_test2 := -ldl
LDFLAGS_test3 := -ldl ./libtest1.so ./libtest2.so -Wl,-rpath,.
+LDFLAGS_dladdr := -ldl
DEBUG_LIBS := X
WRAPPER := env $(DEBUG_LIBS)=all LD_LIBRARY_PATH="$$PWD:.:$(LD_LIBRARY_PATH)"
Added: branches/uClibc_0_9_29/test/dlopen/dladdr.c
===================================================================
--- branches/uClibc_0_9_29/test/dlopen/dladdr.c (rev 0)
+++ branches/uClibc_0_9_29/test/dlopen/dladdr.c 2008-01-22 16:25:37 UTC (rev 20886)
@@ -0,0 +1,25 @@
+#include <dlfcn.h>
+#include <stdlib.h>
+#include <stdio.h>
+#include <string.h>
+
+int main(int argc, char **argv)
+{
+ Dl_info info;
+ int res = 0;
+
+ memset(&info, '\0', sizeof(Dl_info));
+ res = dladdr((void *)1, &info);
+ if (res != 0) {
+ fprintf(stderr, "dladdr() should fail\n");
+ fprintf(stderr, "dli_fname = %s\n", info.dli_fname);
+ fprintf(stderr, "dli_fbase = 0x%08x\n", (unsigned int)info.dli_fbase);
+ fprintf(stderr, "dli_sname = %s\n", info.dli_sname);
+ fprintf(stderr, "dli_saddr = 0x%08x\n", (unsigned int)info.dli_saddr);
+ exit(1);
+ }
+
+ fprintf(stderr, "dladdr() failed as expected\n");
+ return EXIT_SUCCESS;
+}
+
[prev in list] [next in list] [prev in thread] [next in thread]
Configure |
About |
News |
Add a list |
Sponsored by KoreLogic