Re: dlopen interception on libasan

2016-11-30 Thread Christos Zoulas
In article <583ee75a.8050...@netbsd.org>, Nick Hudson wrote: >On 11/30/16 14:37, Christos Zoulas wrote: >> On Nov 30, 7:34am, sk...@netbsd.org (Nick Hudson) wrote: >> > >[incorrect test deleted] > >> You did not define dlopen() in your own shared object; libasan needs to >> do

Re: dlopen interception on libasan

2016-11-30 Thread Nick Hudson
On 11/30/16 14:37, Christos Zoulas wrote: On Nov 30, 7:34am, sk...@netbsd.org (Nick Hudson) wrote: [incorrect test deleted] You did not define dlopen() in your own shared object; libasan needs to do that to override the default definition. This is not the right test. OK, so... add

Re: dlopen interception on libasan

2016-11-30 Thread Christos Zoulas
On Nov 30, 7:34am, sk...@netbsd.org (Nick Hudson) wrote: -- Subject: Re: dlopen interception on libasan | Are you sure about RTLD_DEFAULT? | | zoom$ cat foo.c | #include | | void * | foo_rtld_default(void) | { | return dlsym(RTLD_DEFAULT, "dlopen"); | } | | void * | foo

dlopen interception on libasan

2016-11-29 Thread Christos Zoulas
Well, the problem in PR/51670 is that with -fsanitizer=address the dlopen interception is broken. libasan.so provides its own dlopen() and then tries to find the real dlopen using dlsym(RTLD_NEXT, "dlopen"). That does not work for NetBSD because dlopen in libc is just a stub (that perhaps should