Skip site navigation (1)Skip section navigation (2)
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
This is a multipart MIME message.

--===_0_Sun_Jan_18_12:57:47_PST_1998
Content-Type: text/plain; charset=us-ascii

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


--===_0_Sun_Jan_18_12:57:47_PST_1998
Content-Type: text/plain; charset=us-ascii
Content-Description: test.c

#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;
}


--===_0_Sun_Jan_18_12:57:47_PST_1998--





Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?199801182059.MAA15204>