Bug #17737 | yassl libmysqlclient crashes if no client certificate provided | ||
---|---|---|---|
Submitted: | 27 Feb 2006 12:58 | Modified: | 4 May 2006 16:57 |
Reporter: | Domas Mituzas | Email Updates: | |
Status: | Closed | Impact on me: | |
Category: | MySQL Server: Command-line Clients | Severity: | S2 (Serious) |
Version: | 5.0-bk-20060227 | OS: | MacOS (MacOSX, Windows) |
Assigned to: | Magnus Blåudd | CPU Architecture: | Any |
[27 Feb 2006 12:58]
Domas Mituzas
[27 Feb 2006 17:12]
Jorge del Conde
Tested using a recent 5.0bk pull under 10.4.4
[8 Mar 2006 11:33]
Magnus Blåudd
Magnus will review patch provided by Domas.
[12 Mar 2006 13:05]
Bugs System
A patch for this bug has been committed. After review, it may be pushed to the relevant source trees for release in the next version. You can access the patch from: http://lists.mysql.com/commits/3751
[12 Apr 2006 10:08]
Magnus Blåudd
Patch sent to Todd and included in upstream yaSSL.
[18 Apr 2006 14:22]
Magnus Blåudd
This problem will be fixed when the latest patch from upstream yaSSL have been pushed.
[27 Apr 2006 14:58]
MySQL Verification Team
verified a crash on today's 5.0.22-bk on windows. Connecting without ssl-key cause client to crash with stack trace: mysql.exe!_NMSG_WRITE mysql.exe!abort() mysql.exe!_assert mysql.exe!TaoCrypt::Block<unsigned char,TaoCrypt::AllocatorWithCleanup<unsigned char> >::operator[] mysql.exe!TaoCrypt::Source::next() mysql.exe!TaoCrypt::BER_Decoder::GetSequence() mysql.exe!TaoCrypt::DSA_Private_Decoder::ReadHeader() mysql.exe!TaoCrypt::DSA_Private_Decoder::Decode mysql.exe!TaoCrypt::DSA_PrivateKey::Initialize mysql.exe!yaSSL::DSS::DSSImpl::SetPrivate mysql.exe!yaSSL::DSS::DSS mysql.exe!yaSSL::CertificateVerify::Build mysql.exe!yaSSL::sendCertificateVerify mysql.exe!SSL_connect mysql.exe!SSL_do_handshake mysql.exe!_sslconnect() mysql.exe!_mysql_real_connect@32() mysql.exe!sql_real_connect mysql.exe!sql_connect mysql.exe!main mysql.exe!mainCRTStartup() kernel32.dll!ProcessIdToSessionId()
[27 Apr 2006 15:43]
MySQL Verification Team
Probably the same bug, causes the *server* to crash when connecting from a JDBC client!!! Verified a server crash using the upload .java testcase.
[27 Apr 2006 15:44]
MySQL Verification Team
server crash stack trace
Attachment: crash.stack.txt (text/plain), 4.13 KiB.
[27 Apr 2006 20:18]
Magnus Blåudd
Upgraded our bundled yaSSL to latest version. This should fix this problem.
[4 May 2006 16:57]
Paul DuBois
Noted in 5.0.22, 5.1.10 changelogs. The bundled yaSSL library was upgraded to version 1.3.0. This improves handling of certain problems with SSL-related command options. (Bug #17737)
[4 May 2006 19:05]
Steve Sawkins
The server crash (as captured in the crash.stack.txt submitted by Shane) is apparently due to an alignment problem on machines with SSE2 capability (like those with Pentium 4 CPUs, for example). The faulting instruction is MOVDQA, which is also known as _mm_load_si128. It loads a 16-byte-aligned integer into an MMX register. I replaced the two _mm_load_si128 instructions with _mm_loadu_si128(also known as MOVDQU) which does an unaligned 16-byte move. This seemed to fix the problem. This was reported to yassl who found it to be a flaw in the use of their aligned allocator. Hopefully the 1.3.0 version of yassl includes this fix. I'd be happier if we had a separate bug report tracking the server crash, given that it's probably a P4-only problem and is on the server side.