On 2012-06-22 21:22, oh...@cox.net wrote:

Does that confirm that they statically linked stuff from openssl (and 
libcrypto) into libobaccess.so?

I think so.

Also you can run nm -aC liboaccess.so. The symbols marked with "U" are undefined => they are external to the lib. The functions marked with "T" or "t" are defined by the lib => their code is in the binary.

Functions marked with upper-case ("T") are exported, i.e. another module may use the function. Functions marked with lower-case ("t") are not exported. Those functions can be run by other functions in the same module only. If the libcrypto functions in liboaccess were not exported (marked with lower-case letter) you wouldn't have a problem: the functions in liboaccess would execute the libcrypto functions in liboaccess and the functions in mod_ssl would execute the libcrypto functions in your system's libcrypto.

But I suppose that's not the case.

Assuming that's the case, is there any way around this?

The easiest way would be to have a liboaccess _dynamically_ linked with libcrypto. In this case, the first module between mod_ssl and your module that loads would load libcrypto. When the second module loads, the loader tries to resolve the undefined symbols of the second module and it will find them in the already loaded libcrypto.

If you cannot obtain a liboaccess dynamically linked with libcrypto, you _could_ try to recompile mod_ssl such that it does not export any libcrypto functions, but I don't know if it is possible.

S

Reply via email to