dlmopen with RTLD_GLOBAL

Florian Weimer fweimer@redhat.com
Mon Jul 3 18:27:00 GMT 2017


On 06/30/2017 11:52 PM, Elliott Slaughter wrote:
> main:
>   dlmopen(LM_ID_NEWLM, "libpython2.7.so", RTLD_DEEPBIND | RTLD_LOCAL |
> RTLD_LAZY)
>   from inside user Python script:
>     import some_native_module
>     this causes Python to execute the following (remember this is
> inside the new namespace):
>       dlopen("some_native_module.so", ...)
> 
> If RTLD_GLOBAL is an option with dlmopen, then the symbols can be
> exposed within the new namespace, and subsequent dlopen calls to
> shared objects that do not explicitly mention Python will succeed.

What happens if you reload libpython2.7.so with RTLD_GLOBAL within the
namespace?

Thanks,
Florian



More information about the Libc-help mailing list