diff options
author | Shane Kearns <dbgshane@gmail.com> | 2012-12-06 17:03:18 +0000 |
---|---|---|
committer | Marko Valtanen <marko.valtanen@digia.com> | 2012-12-12 09:29:24 +0200 |
commit | 7ce46903ab922eb21b12b975a6c3bf5189521ef6 (patch) | |
tree | 6429720151dff1f50b817482f5d074d269ffd0c6 /src/network/ssl/qsslsocket_openssl.cpp | |
parent | b67ee403689587ff3ce8d335e098f9e09aa0e4c1 (diff) |
Fix binary incompatibility between openssl versions
OpenSSL changed the layout of X509_STORE_CTX between 0.9 and 1.0
So we have to consider this struct as private implementation, and use
the access functions instead.
This bug would cause certificate verification problems if a different
version of openssl is loaded at runtime to the headers Qt was compiled
against.
Task-number: QTBUG-28343
Change-Id: I47fc24336f7d9c80f08f9c8ba6debc51a5591258
Reviewed-by: Richard J. Moore <rich@kde.org>
(cherry picked from commit eb2688c4c4f257d0a4d978ba4bf57d6347b15252)
Diffstat (limited to 'src/network/ssl/qsslsocket_openssl.cpp')
-rw-r--r-- | src/network/ssl/qsslsocket_openssl.cpp | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 0b218df002..704ae5c451 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -229,7 +229,7 @@ static int q_X509Callback(int ok, X509_STORE_CTX *ctx) { if (!ok) { // Store the error and at which depth the error was detected. - _q_sslErrorList()->errors << qMakePair<int, int>(ctx->error, ctx->error_depth); + _q_sslErrorList()->errors << qMakePair<int, int>(q_X509_STORE_CTX_get_error(ctx), q_X509_STORE_CTX_get_error_depth(ctx)); } // Always return OK to allow verification to continue. We're handle the // errors gracefully after collecting all errors, after verification has |