diff --git a/qt-everywhere-opensource-src-4.8.7-openssl3.patch b/qt-everywhere-opensource-src-4.8.7-openssl3.patch new file mode 100644 index 0000000000000000000000000000000000000000..c2d77cb3f30a56812d86499f34b98ac0a5a46e16 --- /dev/null +++ b/qt-everywhere-opensource-src-4.8.7-openssl3.patch @@ -0,0 +1,90 @@ +diff -up qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp.me qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp +--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp.me 2021-10-19 15:12:03.727951685 +0200 ++++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl.cpp 2021-10-19 15:18:59.795315141 +0200 +@@ -273,7 +273,11 @@ init_context: + #endif + break; + case QSsl::SslV3: ++#ifndef OPENSSL_NO_SSL3 + ctx = q_SSL_CTX_new(client ? q_SSLv3_client_method() : q_SSLv3_server_method()); ++#else ++ ctx = 0; ++#endif + break; + case QSsl::SecureProtocols: // SslV2 will be disabled below + case QSsl::TlsV1SslV3: // SslV2 will be disabled below +diff -up qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp.me qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp +--- qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp.me 2021-10-12 19:58:01.005913416 +0200 ++++ qt-everywhere-opensource-src-4.8.7/src/network/ssl/qsslsocket_openssl_symbols.cpp 2021-10-19 15:11:32.660331443 +0200 +@@ -253,7 +253,9 @@ DEFINEFUNC(int, SSL_shutdown, SSL *a, a, + #ifndef OPENSSL_NO_SSL2 + DEFINEFUNC(const SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return) + #endif ++#ifndef OPENSSL_NO_SSL3 + DEFINEFUNC(const SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return) ++#endif + #if OPENSSL_VERSION_NUMBER < 0x10100000L + DEFINEFUNC(const SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return) + #else +@@ -263,7 +265,9 @@ DEFINEFUNC(const SSL_METHOD *, TLSv1_cli + #ifndef OPENSSL_NO_SSL2 + DEFINEFUNC(const SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return) + #endif ++#ifndef OPENSSL_NO_SSL3 + DEFINEFUNC(const SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return) ++#endif + #if OPENSSL_VERSION_NUMBER < 0x10100000L + DEFINEFUNC(const SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return) + #else +@@ -272,11 +276,15 @@ DEFINEFUNC(const SSL_METHOD *, TLS_serve + DEFINEFUNC(const SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return) + #else + DEFINEFUNC(SSL_METHOD *, SSLv2_client_method, DUMMYARG, DUMMYARG, return 0, return) ++#ifndef OPENSSL_NO_SSL3 + DEFINEFUNC(SSL_METHOD *, SSLv3_client_method, DUMMYARG, DUMMYARG, return 0, return) ++#endif + DEFINEFUNC(SSL_METHOD *, SSLv23_client_method, DUMMYARG, DUMMYARG, return 0, return) + DEFINEFUNC(SSL_METHOD *, TLSv1_client_method, DUMMYARG, DUMMYARG, return 0, return) + DEFINEFUNC(SSL_METHOD *, SSLv2_server_method, DUMMYARG, DUMMYARG, return 0, return) ++#ifndef OPENSSL_NO_SSL3 + DEFINEFUNC(SSL_METHOD *, SSLv3_server_method, DUMMYARG, DUMMYARG, return 0, return) ++#endif + DEFINEFUNC(SSL_METHOD *, SSLv23_server_method, DUMMYARG, DUMMYARG, return 0, return) + DEFINEFUNC(SSL_METHOD *, TLSv1_server_method, DUMMYARG, DUMMYARG, return 0, return) + #endif +@@ -756,11 +764,15 @@ bool q_resolveOpenSslSymbols() + RESOLVEFUNC(SSL_shutdown, 173, libs.first ) + RESOLVEFUNC(SSL_write, 188, libs.first ) + RESOLVEFUNC(SSLv2_client_method, 192, libs.first ) ++#ifndef OPENSSL_NO_SSL3 + RESOLVEFUNC(SSLv3_client_method, 195, libs.first ) ++#endif + RESOLVEFUNC(SSLv23_client_method, 189, libs.first ) + RESOLVEFUNC(TLSv1_client_method, 198, libs.first ) + RESOLVEFUNC(SSLv2_server_method, 194, libs.first ) ++#ifndef OPENSSL_NO_SSL3 + RESOLVEFUNC(SSLv3_server_method, 197, libs.first ) ++#endif + RESOLVEFUNC(SSLv23_server_method, 191, libs.first ) + RESOLVEFUNC(TLSv1_server_method, 200, libs.first ) + RESOLVEFUNC(SSL_CTX_load_verify_locations, 34, libs.first ) +@@ -927,7 +939,9 @@ bool q_resolveOpenSslSymbols() + #ifndef OPENSSL_NO_SSL2 + RESOLVEFUNC(SSLv2_client_method) + #endif ++#ifndef OPENSSL_NO_SSL3 + RESOLVEFUNC(SSLv3_client_method) ++#endif + #if OPENSSL_VERSION_NUMBER < 0x10100000L + RESOLVEFUNC(SSLv23_client_method) + #else +@@ -937,7 +951,9 @@ bool q_resolveOpenSslSymbols() + #ifndef OPENSSL_NO_SSL2 + RESOLVEFUNC(SSLv2_server_method) + #endif ++#ifndef OPENSSL_NO_SSL3 + RESOLVEFUNC(SSLv3_server_method) ++#endif + #if OPENSSL_VERSION_NUMBER < 0x10100000L + RESOLVEFUNC(SSLv23_server_method) + #else diff --git a/qt.spec b/qt.spec index a583b0da15e0decf748bbce67210728c1e316b43..3a42a9315e48e0252cdbd1b7781682f7a48138d9 100644 --- a/qt.spec +++ b/qt.spec @@ -13,7 +13,7 @@ Name: qt Epoch: 1 Version: 4.8.7 -Release: 51 +Release: 52 Summary: A software toolkit for developing applications License: (LGPLv2 with exceptions or GPLv3 with exceptions) and ASL 2.0 and BSD and FTL and MIT URL: http://qt-project.org/ @@ -73,6 +73,7 @@ Patch41: qt-everywhere-opensource-src-4.8.5-QTBUG-35459.patch Patch42: qt-everywhere-opensource-src-4.8.6-systemtrayicon.patch Patch43: stack-protector.patch Patch44: 0001-Redo-the-Q_FOREACH-loop-control-without-GCC-statemen.patch +Patch45: qt-everywhere-opensource-src-4.8.7-openssl3.patch Patch6000: CVE-2018-19869.patch Patch6001: CVE-2018-19872.patch Patch6002: CVE-2018-19871.patch @@ -446,6 +447,9 @@ fi %{_qt4_prefix}/examples/ %changelog +* Mon Feb 06 2023 peijiankang - 1:4.8.7-52 +- Fix compilation errors caused by openssl3.0.7 upgrade + * Wed Oct 14 2020 wangyue - 1:4.8.7-51 - fix CVE-2020-0570