Date: Sun, 18 Jan 1998 12:59:19 -0800 From: John Polstra <jdp@polstra.com> To: hackers@FreeBSD.ORG Subject: Re: dladdr hax Message-ID: <199801182059.MAA15204@austin.polstra.com>
next in thread | raw e-mail | index | archive | help
[-- Attachment #1 --]
Could somebody with access to a Solaris machine please compile and
run the attached program, and send me its output?
Thanks,
John
--
John Polstra jdp@polstra.com
John D. Polstra & Co., Inc. Seattle, Washington USA
"Self-knowledge is always bad news." -- John Barth
[-- Attachment #2 --]
#include <dlfcn.h>
#include <stdio.h>
#include <unistd.h>
#define TRY(name) (try(#name, &name))
extern int end;
int foo;
int bar=100;
static void
try(const char *name, void *addr)
{
Dl_info dli;
printf("&%s = %p:\n", name, addr);
if (dladdr(addr, &dli) == 0)
printf(" dladdr failed\n");
else {
printf(" fname = %s\n", dli.dli_fname);
printf(" fbase = %p\n", dli.dli_fbase);
printf(" sname = %s\n", dli.dli_sname);
printf(" saddr = %p\n", dli.dli_saddr);
}
}
main(int argc, char **argv)
{
printf("argv[0] = %s\n", argv[0]);
printf("&end = %p\n", &end);
TRY(foo);
TRY(bar);
TRY(main);
TRY(printf);
TRY(setuid);
return 0;
}
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801182059.MAA15204>
