diff options
author | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-04-22 16:35:41 +0200 |
---|---|---|
committer | Frederik Gladhorn <frederik.gladhorn@digia.com> | 2013-04-22 16:35:43 +0200 |
commit | 4c231d5df3040dbf4545a9a77145ee0e1f9c380c (patch) | |
tree | 2cc5b71a5d2b464214cf5372776913fbe4622e1e /src/network | |
parent | 7df16fb4ccbe0476bc34274a77e98eec4e8d2d93 (diff) | |
parent | d672ef07681a959d9559dd1e11e70db1f448a7f1 (diff) |
Merge remote-tracking branch 'origin/stable' into dev
Change-Id: I059725e3b7d7ffd5a16a0931e6c17200917172b5
Diffstat (limited to 'src/network')
-rw-r--r-- | src/network/ssl/qsslsocket_openssl.cpp | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/network/ssl/qsslsocket_openssl.cpp b/src/network/ssl/qsslsocket_openssl.cpp index 590b3dfc67..0ce5c8915d 100644 --- a/src/network/ssl/qsslsocket_openssl.cpp +++ b/src/network/ssl/qsslsocket_openssl.cpp @@ -325,9 +325,13 @@ bool QSslSocketBackendPrivate::initSslContext() Q_Q(QSslSocket); // If no external context was set (e.g. bei QHttpNetworkConnection) we will create a default context - if (!sslContextPointer) + if (!sslContextPointer) { + // create a deep copy of our configuration + QSslConfigurationPrivate *configurationCopy = new QSslConfigurationPrivate(configuration); + configurationCopy->ref.store(0); // the QSslConfiguration constructor refs up sslContextPointer = QSharedPointer<QSslContext>( - QSslContext::fromConfiguration(mode, QSslConfiguration(&configuration), allowRootCertOnDemandLoading)); + QSslContext::fromConfiguration(mode, configurationCopy, allowRootCertOnDemandLoading)); + } if (sslContextPointer->error() != QSslError::NoError) { q->setErrorString(sslContextPointer->errorString()); |