aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Richard <[email protected]>2018-09-05 22:05:13 +0000
committerVincent Richard <[email protected]>2018-09-05 22:05:13 +0000
commit3bd864efc21ca6aa8f67521b4ef6f6410d66fba2 (patch)
tree3f9a11a1782117c8a75d84d871c96022b10b7ed3
parentCode style and clarity. (diff)
downloadvmime-3bd864efc21ca6aa8f67521b4ef6f6410d66fba2.tar.gz
vmime-3bd864efc21ca6aa8f67521b4ef6f6410d66fba2.zip
Fixed possible memory leak.
-rw-r--r--src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp5
1 files changed, 5 insertions, 0 deletions
diff --git a/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp b/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp
index 93f1b763..73d52231 100644
--- a/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp
+++ b/src/vmime/net/tls/gnutls/TLSSocket_GnuTLS.cpp
@@ -468,6 +468,11 @@ shared_ptr <security::cert::certificateChain> TLSSocket_GnuTLS::getPeerCertifica
int res = gnutls_x509_crt_import(x509Certs[i], rawData + i, GNUTLS_X509_FMT_DER);
if (res < 0) {
+
+ for (unsigned int j = 0 ; j <= i ; ++j) {
+ gnutls_x509_crt_deinit(x509Certs[j]);
+ }
+
// XXX more fine-grained error reporting?
delete [] x509Certs;
return null;