agl-compositor_git.bb: Bump SRCREV for agl compositor
[AGL/meta-agl.git] / meta-agl-core / dynamic-layers / meta-qt5 / recipes-qt / qt5 / qtbase / 0001-Don-t-use-a-deprecated-function-if-built-linked-with.patch
1 From bed8f42232886b3b738cb4d4ff77846283c59665 Mon Sep 17 00:00:00 2001
2 From: Timur Pocheptsov <timur.pocheptsov@qt.io>
3 Date: Mon, 12 Jul 2021 12:38:14 +0200
4 Subject: [PATCH] Don't use a deprecated function if built/linked with OpenSSL
5  v3
6 MIME-Version: 1.0
7 Content-Type: text/plain; charset=UTF-8
8 Content-Transfer-Encoding: 8bit
9
10 SSL_get_peer_certificate was deprecated in OpenSSL v3 and can be 'compiled-out'
11 using OPENSSL_API_COMPAT. Use SSL_get1_peer_certificate instead.
12
13 Pick-to: 6.2
14 Task-number: QTBUG-94596
15 Change-Id: Iedb2e06e673e981cab79d4bf0147ac6f5f90089a
16 Reviewed-by: MÃ¥rten Nordheim <marten.nordheim@qt.io>
17 (cherry picked from commit ae6590e360fbb04d93940b2651f70df44a28943e)
18 ---
19  src/network/ssl/qsslsocket_openssl_symbols.cpp | 12 ++++++++++++
20  src/network/ssl/qsslsocket_openssl_symbols_p.h |  9 ++++++++-
21  2 files changed, 20 insertions(+), 1 deletion(-)
22
23 diff --git a/src/network/ssl/qsslsocket_openssl_symbols.cpp b/src/network/ssl/qsslsocket_openssl_symbols.cpp
24 index 81caef3d8f..f343349e2c 100644
25 --- a/src/network/ssl/qsslsocket_openssl_symbols.cpp
26 +++ b/src/network/ssl/qsslsocket_openssl_symbols.cpp
27 @@ -368,7 +368,13 @@ DEFINEFUNC(const SSL_CIPHER *, SSL_get_current_cipher, SSL *a, a, return nullptr
28  DEFINEFUNC(int, SSL_version, const SSL *a, a, return 0, return)
29  DEFINEFUNC2(int, SSL_get_error, SSL *a, a, int b, b, return -1, return)
30  DEFINEFUNC(STACK_OF(X509) *, SSL_get_peer_cert_chain, SSL *a, a, return nullptr, return)
31 +
32 +#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3
33 +DEFINEFUNC(X509 *, SSL_get1_peer_certificate, SSL *a, a, return nullptr, return)
34 +#else
35  DEFINEFUNC(X509 *, SSL_get_peer_certificate, SSL *a, a, return nullptr, return)
36 +#endif // OPENSSL_VERSION_MAJOR >= 3
37 +
38  DEFINEFUNC(long, SSL_get_verify_result, const SSL *a, a, return -1, return)
39  DEFINEFUNC(SSL *, SSL_new, SSL_CTX *a, a, return nullptr, return)
40  DEFINEFUNC(SSL_CTX *, SSL_get_SSL_CTX, SSL *a, a, return nullptr, return)
41 @@ -1075,7 +1081,13 @@ bool q_resolveOpenSslSymbols()
42      RESOLVEFUNC(SSL_version)
43      RESOLVEFUNC(SSL_get_error)
44      RESOLVEFUNC(SSL_get_peer_cert_chain)
45 +
46 +#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3
47 +    RESOLVEFUNC(SSL_get1_peer_certificate)
48 +#else
49      RESOLVEFUNC(SSL_get_peer_certificate)
50 +#endif // OPENSSL_VERSION_MAJOR >= 3
51 +
52      RESOLVEFUNC(SSL_get_verify_result)
53      RESOLVEFUNC(SSL_new)
54      RESOLVEFUNC(SSL_get_SSL_CTX)
55 diff --git a/src/network/ssl/qsslsocket_openssl_symbols_p.h b/src/network/ssl/qsslsocket_openssl_symbols_p.h
56 index b363e77f48..000134b671 100644
57 --- a/src/network/ssl/qsslsocket_openssl_symbols_p.h
58 +++ b/src/network/ssl/qsslsocket_openssl_symbols_p.h
59 @@ -509,7 +509,6 @@ const SSL_CIPHER *q_SSL_get_current_cipher(SSL *a);
60  int q_SSL_version(const SSL *a);
61  int q_SSL_get_error(SSL *a, int b);
62  STACK_OF(X509) *q_SSL_get_peer_cert_chain(SSL *a);
63 -X509 *q_SSL_get_peer_certificate(SSL *a);
64  long q_SSL_get_verify_result(const SSL *a);
65  SSL *q_SSL_new(SSL_CTX *a);
66  SSL_CTX *q_SSL_get_SSL_CTX(SSL *a);
67 @@ -748,6 +747,14 @@ void *q_CRYPTO_malloc(size_t num, const char *file, int line);
68  int q_SSL_CTX_get_security_level(const SSL_CTX *ctx);
69  void q_SSL_CTX_set_security_level(SSL_CTX *ctx, int level);
70  
71 +// Here we have the ones that make difference between OpenSSL pre/post v3:
72 +#if defined(OPENSSL_VERSION_MAJOR) && OPENSSL_VERSION_MAJOR >= 3
73 +X509 *q_SSL_get1_peer_certificate(SSL *a);
74 +#define q_SSL_get_peer_certificate q_SSL_get1_peer_certificate
75 +#else
76 +X509 *q_SSL_get_peer_certificate(SSL *a);
77 +#endif // OPENSSL_VERSION_MAJOR >= 3
78 +
79  QT_END_NAMESPACE
80  
81  #endif
82 -- 
83 2.35.3
84