How can I use another libssl.so library in a program that references libcrypto.so.10?
target os : centos 6.8
1. checking "a.out" target shared libraries
[root@centos69 cui]# ldd a.out
linux-vdso.so.1 => (0x00007ffe52fed000)
libdl.so.2 => /lib64/libdl.so.2 (0x000000358a200000)
libcrypto.so.10 => /usr/lib64/libcrypto.so.10 (0x0000003594600000)
libc.so.6 => /lib64/libc.so.6 (0x0000003589a00000)
/lib64/ld-linux-x86-64.so.2 (0x0000003589200000)
libz.so.1 => /lib64/libz.so.1 (0x0000003589600000)
2. Here is the code I wrote
ssl = dlopen("/usr/local/my/libssl.so", RTLD_LAZY);//` i wanna use!!!!
if (!ssl) {
fprintf(stderr, "%s\n", dlerror());
exit(1);
}
hd1 = dlopen("/usr/lib64/libssl.so.10", RTLD_LAZY);
if (!ssl) {
fprintf(stderr, "%s\n", dlerror());
exit(1);
}
SSL_library_init_1= (FN_SSL_LIBRARY_INIT) LibLoader_GetProcAddress(ssl, "SSL_library_init");
printf("SSL_library_init_1 [%x]\n", SSL_library_init_1);
SSL_library_init_1();//` Die!!!!!!
SSL_library_init_2= (FN_SSL_LIBRARY_INIT) LibLoader_GetProcAddress(hd1, "SSL_library_init");
printf("SSL_library_init_2 [%x]\n", SSL_library_init_2);
SSL_library_init_2();
What I have tried:
How can I use another libssl.so library in a program that references libcrypto.so.10?