summaryrefslogtreecommitdiffstats
path: root/src/network/ssl/qsslkey_openssl.cpp
diff options
context:
space:
mode:
authorAndré Klitzing <aklitzing@gmail.com>2015-01-19 12:53:01 +0100
committerAndré Klitzing <aklitzing@gmail.com>2015-02-11 21:00:04 +0000
commit2688725eb73234a8870411017f85ec2fda6c80cd (patch)
treef77ce4f090c2d4601501acefcfa17895b5032d1c /src/network/ssl/qsslkey_openssl.cpp
parent2af127763194c13c3f7ccce507c94eb2de6dbefe (diff)
Use a union for different openssl types
Since the algorithm can only be one the underlying structure can share the same memory. Change-Id: Ifeaa1a2d5c4ad3566cbbf847445b805876275260 Reviewed-by: Olivier Goffart (Woboq GmbH) <ogoffart@woboq.com> Reviewed-by: Richard J. Moore <rich@kde.org>
Diffstat (limited to 'src/network/ssl/qsslkey_openssl.cpp')
-rw-r--r--src/network/ssl/qsslkey_openssl.cpp8
1 files changed, 4 insertions, 4 deletions
diff --git a/src/network/ssl/qsslkey_openssl.cpp b/src/network/ssl/qsslkey_openssl.cpp
index 9053d20905..66995206fc 100644
--- a/src/network/ssl/qsslkey_openssl.cpp
+++ b/src/network/ssl/qsslkey_openssl.cpp
@@ -52,24 +52,24 @@ void QSslKeyPrivate::clear(bool deep)
isNull = true;
if (!QSslSocket::supportsSsl())
return;
- if (rsa) {
+ if (algorithm == QSsl::Rsa && rsa) {
if (deep)
q_RSA_free(rsa);
rsa = 0;
}
- if (dsa) {
+ if (algorithm == QSsl::Dsa && dsa) {
if (deep)
q_DSA_free(dsa);
dsa = 0;
}
#ifndef OPENSSL_NO_EC
- if (ec) {
+ if (algorithm == QSsl::Ec && ec) {
if (deep)
q_EC_KEY_free(ec);
ec = 0;
}
#endif
- if (opaque) {
+ if (algorithm == QSsl::Opaque && opaque) {
if (deep)
q_EVP_PKEY_free(opaque);
opaque = 0;