[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

LD_PRELOAD=lib using ldopen: can't resolve symbol '_dl_open'



I'm trying to LD_PRELOAD a library that in turn uses ldopen.
this works OK, as long as I don't try to run (with LD_PRELOAD
set) any binaries that use libdl themselves.

Should this be possible? If so, what am I doing wrong?


$ cat libfoo.c 
#include <dlfcn.h>
void foo(){
  void *handle=handle = dlopen("/lib/libc.so.6", RTLD_LAZY);
  dlclose(handle);
}

$ gcc -shared -Wl,-soname,libfoo.so.0 -o libfoo.so.0.0 -fPIC libfoo.c -ldl

$ export LD_PRELOAD=./libfoo.so.0.0 
$ bash  
bash: can't resolve symbol '_dl_open'
bash: can't resolve symbol '_dl_close'
bash: can't resolve symbol '_dl_catch_error'
$ ls -d .
./


Thanks.

-- 
joost witteveen, joostje@debian.org
#!/usr/bin/perl -sp0777i<X+d*lMLa^*lN%0]dsXx++lMlN/dsM0<j]dsj
$/=unpack('H*',$_);$_=`echo 16dio\U$k"SK$/SM$n\EsN0p[lN*1
lK[d2%Sa2/d0$^Ixp"|dc`;s/\W//g;$_=pack('H*',/((..)*)$/)
#what's this? see http://www.dcs.ex.ac.uk/~aba/rsa/


--
TO UNSUBSCRIBE FROM THIS MAILING LIST: e-mail the word "unsubscribe" to
debian-user-request@lists.debian.org . 
Trouble?  e-mail to templin@bucknell.edu .


Reply to: