From 15cf7cd45b045bed57223770ed6d71c330bbe663 Mon Sep 17 00:00:00 2001 From: Ansgar Becker Date: Tue, 24 Jan 2012 22:19:02 +0000 Subject: [PATCH] Fix non-nil values for mysql_ssl_set(), broken in r4031. --- source/dbconnection.pas | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/source/dbconnection.pas b/source/dbconnection.pas index 0fd7d166..c0d4b561 100644 --- a/source/dbconnection.pas +++ b/source/dbconnection.pas @@ -836,6 +836,7 @@ var CurCharset: String; StartupInfo: TStartupInfo; ExitCode: LongWord; + sslca, sslkey, sslcert: PAnsiChar; PluginDir: AnsiString; Vars, Status: TDBQuery; begin @@ -852,11 +853,21 @@ begin case FParameters.NetType of ntMySQL_TCPIP: begin if FParameters.WantSSL then begin + // mysql_ssl_set() wants nil, while PAnsiChar(AnsiString()) is never nil + sslkey := nil; + sslcert := nil; + sslca := nil; + if FParameters.SSLPrivateKey <> '' then + sslkey := PAnsiChar(AnsiString(FParameters.SSLPrivateKey)); + if FParameters.SSLCertificate <> '' then + sslcert := PAnsiChar(AnsiString(FParameters.SSLCertificate)); + if FParameters.SSLCACertificate <> '' then + sslca := PAnsiChar(AnsiString(FParameters.SSLCACertificate)); { TODO : Use Cipher and CAPath parameters } mysql_ssl_set(FHandle, - PAnsiChar(AnsiString(FParameters.SSLPrivateKey)), - PAnsiChar(AnsiString(FParameters.SSLCertificate)), - PAnsiChar(AnsiString(FParameters.SSLCACertificate)), + sslkey, + sslcert, + sslca, nil, nil); Log(lcInfo, 'SSL parameters successfully set.');