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