Author: arekm Date: Thu Feb 7 07:58:05 2008 GMT Module: SOURCES Tag: MYSQL_5_0 ---- Log message: - official fix
---- Files affected: SOURCES: mysql-ssl.patch (1.1.2.2 -> 1.1.2.3) ---- Diffs: ================================================================ Index: SOURCES/mysql-ssl.patch diff -u SOURCES/mysql-ssl.patch:1.1.2.2 SOURCES/mysql-ssl.patch:1.1.2.3 --- SOURCES/mysql-ssl.patch:1.1.2.2 Thu Dec 20 23:13:26 2007 +++ SOURCES/mysql-ssl.patch Thu Feb 7 08:57:59 2008 @@ -1,7 +1,23 @@ -diff -urN mysql-5.0.51.org/vio/viossl.c mysql-5.0.51/vio/viossl.c ---- mysql-5.0.51.org/vio/viossl.c 2007-11-15 15:07:13.000000000 +0100 -+++ mysql-5.0.51/vio/viossl.c 2007-12-20 22:56:38.660942731 +0100 -@@ -172,20 +172,14 @@ +From: msvenssonDate: February 7 2008 8:48am +Subject: bk commit into 5.0 tree (msvensson:1.2573) BUG#33050 + +Below is the list of changes that have just been committed into a local +5.0 repository of msvensson. When msvensson does a push these changes +will be propagated to the main repository and, within 24 hours after the +push, to the public repository. +For information on how to access the public repository +see http://dev.mysql.com/doc/mysql/en/installing-source-tree.html + [EMAIL PROTECTED], 2008-02-07 08:48:28+01:00, [EMAIL PROTECTED] +1 -0 + Bug#33050 5.0.50 fails many SSL testcases + + vio/[EMAIL PROTECTED], 2008-02-07 08:48:27+01:00, [EMAIL PROTECTED] +21 -14 + Bug#33050 5.0.50 fails many SSL testcases + +diff -Nrup a/vio/viossl.c b/vio/viossl.c +--- a/vio/viossl.c 2007-08-28 11:34:42 +02:00 ++++ b/vio/viossl.c 2008-02-07 08:48:27 +01:00 +@@ -172,20 +172,15 @@ void vio_ssl_delete(Vio *vio) vio_delete(vio); } @@ -11,48 +27,62 @@ - DBUG_RETURN(sslconnect(ptr, vio, timeout)); -} - -- + -int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout) -+static -+int sslprocess(struct st_VioSSLFd *ptr, Vio *vio, long timeout, my_bool accept) ++static int ssl_do(struct st_VioSSLFd *ptr, Vio *vio, long timeout, ++ int (*connect_accept_func)(SSL*)) { SSL *ssl; my_bool unused; my_bool was_blocking; - DBUG_ENTER("sslconnect"); -+ DBUG_ENTER("sslprocess"); ++ DBUG_ENTER("ssl_do"); DBUG_PRINT("enter", ("ptr: 0x%lx, sd: %d ctx: 0x%lx", (long) ptr, vio->sd, (long) ptr->ssl_context)); -@@ -201,6 +195,12 @@ - } - DBUG_PRINT("info", ("ssl: 0x%lx timeout: %ld", (long) ssl, timeout)); - SSL_clear(ssl); -+ -+ if (accept) -+ SSL_set_accept_state(ssl); -+ else -+ SSL_set_connect_state(ssl); -+ +@@ -204,13 +199,9 @@ int sslconnect(struct st_VioSSLFd *ptr, SSL_SESSION_set_timeout(SSL_get_session(ssl), timeout); SSL_set_fd(ssl, vio->sd); -@@ -258,6 +258,17 @@ - DBUG_RETURN(0); +- /* +- SSL_do_handshake will select between SSL_connect +- or SSL_accept depending on server or client side +- */ +- if (SSL_do_handshake(ssl) < 1) ++ if (connect_accept_func(ssl) < 1) + { +- DBUG_PRINT("error", ("SSL_do_handshake failure")); ++ DBUG_PRINT("error", ("SSL_connect/accept failure")); + report_errors(ssl); + SSL_free(ssl); + vio_blocking(vio, was_blocking, &unused); +@@ -259,6 +250,20 @@ int sslconnect(struct st_VioSSLFd *ptr, } + +int sslaccept(struct st_VioSSLFd *ptr, Vio *vio, long timeout) +{ + DBUG_ENTER("sslaccept"); -+ DBUG_RETURN(sslprocess(ptr, vio, timeout, TRUE)); ++ DBUG_RETURN(ssl_do(ptr, vio, timeout, SSL_accept)); +} + ++ +int sslconnect(struct st_VioSSLFd *ptr, Vio *vio, long timeout) +{ + DBUG_ENTER("sslconnect"); -+ DBUG_RETURN(sslprocess(ptr, vio, timeout, FALSE)); ++ DBUG_RETURN(ssl_do(ptr, vio, timeout, SSL_connect)); +} - ++ ++ int vio_ssl_blocking(Vio *vio __attribute__((unused)), my_bool set_blocking_mode, + my_bool *old_mode) +@@ -268,5 +273,7 @@ int vio_ssl_blocking(Vio *vio __attribut + /* Return error if we try to change to non_blocking mode */ + return (set_blocking_mode ? 0 : 1); + } ++ ++ + + #endif /* HAVE_OPENSSL */ ================================================================ ---- CVS-web: http://cvs.pld-linux.org/cgi-bin/cvsweb.cgi/SOURCES/mysql-ssl.patch?r1=1.1.2.2&r2=1.1.2.3&f=u _______________________________________________ pld-cvs-commit mailing list [email protected] http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit
