Fix loading of OpenSSL on macOS versions that ship its own OpenSSL

The unversioned libcrypto.dylib that's shipped with macOS 10.15 will
result in a crash if loaded, with a message saying that the unversioned
library should not be loaded, as it doesn't provide a stable ABI.

Task-number: QTBUG-95249
Pick-to: 6.2 5.15
Change-Id: I49325e5d675155e90840cc93623549f725bc77b4
Reviewed-by: Timur Pocheptsov <timur.pocheptsov@qt.io>
This commit is contained in:
Tor Arne Vestbø 2021-09-17 13:10:55 +02:00
parent 7d475a8656
commit c70bb357cc
2 changed files with 10 additions and 0 deletions

View File

@ -819,6 +819,11 @@ static LoadedOpenSsl loadOpenSsl()
const QStringList cryptoList = findAllLibCrypto();
for (const QString &crypto : cryptoList) {
#ifdef Q_OS_DARWIN
// Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI
if (crypto.endsWith("libcrypto.dylib"))
continue;
#endif
libcrypto->setFileNameAndVersion(crypto, -1);
if (libcrypto->load()) {
QFileInfo fi(crypto);

View File

@ -685,6 +685,11 @@ LoadedOpenSsl loadOpenSsl()
const QStringList cryptoList = findAllLibCrypto();
for (const QString &crypto : cryptoList) {
#ifdef Q_OS_DARWIN
// Clients should not load the unversioned libcrypto dylib as it does not have a stable ABI
if (crypto.endsWith("libcrypto.dylib"))
continue;
#endif
libcrypto->setFileNameAndVersion(crypto, -1);
if (libcrypto->load()) {
QFileInfo fi(crypto);