winhttp, wininet: Load i2d_X509 from libcrypto.so.
Hans Leidekker
hans at codeweavers.com
Thu Mar 5 03:46:10 CST 2009
The SUNWopenssl package (and possibly Macports openssl) exports
i2d_X509 from libcrypto.so only. I checked packages from openSUSE,
Ubuntu, Debian and Fedora and they all export this symbol from
both libcrypto.so and libssl.so, so it seems safe to switch to
loading from libcrypto.so.
Fixes http://bugs.winehq.org/show_bug.cgi?id=15707
-Hans
diff --git a/dlls/winhttp/net.c b/dlls/winhttp/net.c
index 201a1cb..79e6789 100644
--- a/dlls/winhttp/net.c
+++ b/dlls/winhttp/net.c
@@ -103,11 +103,11 @@ MAKE_FUNCPTR( SSL_get_peer_certificate );
MAKE_FUNCPTR( SSL_CTX_get_timeout );
MAKE_FUNCPTR( SSL_CTX_set_timeout );
MAKE_FUNCPTR( SSL_CTX_set_default_verify_paths );
-MAKE_FUNCPTR( i2d_X509 );
MAKE_FUNCPTR( BIO_new_fp );
MAKE_FUNCPTR( ERR_get_error );
MAKE_FUNCPTR( ERR_error_string );
+MAKE_FUNCPTR( i2d_X509 );
#undef MAKE_FUNCPTR
#endif
@@ -221,7 +221,6 @@ BOOL netconn_init( netconn_t *conn, BOOL secure )
LOAD_FUNCPTR( SSL_CTX_get_timeout );
LOAD_FUNCPTR( SSL_CTX_set_timeout );
LOAD_FUNCPTR( SSL_CTX_set_default_verify_paths );
- LOAD_FUNCPTR( i2d_X509 );
#undef LOAD_FUNCPTR
#define LOAD_FUNCPTR(x) \
@@ -234,6 +233,7 @@ BOOL netconn_init( netconn_t *conn, BOOL secure )
LOAD_FUNCPTR( BIO_new_fp );
LOAD_FUNCPTR( ERR_get_error );
LOAD_FUNCPTR( ERR_error_string );
+ LOAD_FUNCPTR( i2d_X509 );
#undef LOAD_FUNCPTR
pSSL_library_init();
diff --git a/dlls/wininet/netconnection.c b/dlls/wininet/netconnection.c
index ccf2928..3c55528 100644
--- a/dlls/wininet/netconnection.c
+++ b/dlls/wininet/netconnection.c
@@ -124,12 +124,12 @@ MAKE_FUNCPTR(SSL_get_peer_certificate);
MAKE_FUNCPTR(SSL_CTX_get_timeout);
MAKE_FUNCPTR(SSL_CTX_set_timeout);
MAKE_FUNCPTR(SSL_CTX_set_default_verify_paths);
-MAKE_FUNCPTR(i2d_X509);
/* OpenSSL's libcrypto functions that we use */
MAKE_FUNCPTR(BIO_new_fp);
MAKE_FUNCPTR(ERR_get_error);
MAKE_FUNCPTR(ERR_error_string);
+MAKE_FUNCPTR(i2d_X509);
#undef MAKE_FUNCPTR
#endif
@@ -188,7 +188,6 @@ BOOL NETCON_init(WININET_NETCONNECTION *connection, BOOL useSSL)
DYNSSL(SSL_CTX_get_timeout);
DYNSSL(SSL_CTX_set_timeout);
DYNSSL(SSL_CTX_set_default_verify_paths);
- DYNSSL(i2d_X509);
#undef DYNSSL
#define DYNCRYPTO(x) \
@@ -202,6 +201,7 @@ BOOL NETCON_init(WININET_NETCONNECTION *connection, BOOL useSSL)
DYNCRYPTO(BIO_new_fp);
DYNCRYPTO(ERR_get_error);
DYNCRYPTO(ERR_error_string);
+ DYNCRYPTO(i2d_X509);
#undef DYNCRYPTO
pSSL_library_init();
More information about the wine-patches
mailing list