Bug #17268 SSL Server loop
Submitted: 9 Feb 2006 9:02 Modified: 27 Feb 2006 13:20
Reporter: Manuel Matonin Email Updates:
Status: Duplicate Impact on me:
None 
Category:MySQL Server Severity:S1 (Critical)
Version:5.0.17 OS:Windows (XP)
Assigned to: Assigned Account CPU Architecture:Any

[9 Feb 2006 9:02] Manuel Matonin
Description:
I compiled MySQL server with yaSSL support. Set up all necessary certificates on both sides. Everything works fine when client provides correct filepaths for function mysql_ssl_set(). If I misspell any of these variables(key, cert, ca) then I most probably end up with SERVER infinite LOOP because client returns an error but there is no handler in SERVER side.

How to repeat:
Follow the Description field details.

Suggested fix:
I traced the problem and it appears in function SSL_accept (ssl.cpp), to be more precise the LOOP will happen on line 175:

// Java Client sends fragmented response
        while (ssl->getStates().getServer() <
               clientFinishedComplete) {
            if (ssl->GetError()) break;
            processReply(*ssl);
        }

It seems that ssl->GetError() is not returning error on client disconnect :D
[9 Feb 2006 9:08] Manuel Matonin
My compiler environment is:
Microsoft Visual C++ 2003 SP1
[27 Feb 2006 13:20] Domas Mituzas
This appears to be duplicate of #15772, which was fixed in 5.0.18. 
If same behavior is reproduced on 5.0.18 or newer as well, please let us know.