diff --git a/daemon/src/sip/tlsvalidation.c b/daemon/src/sip/tlsvalidation.c index 8800ed81c049feebeed33429a6aa4e9162c1d79e..3306f0b23b7e8a8b9a46efcca0e2e093716f6f73 100644 --- a/daemon/src/sip/tlsvalidation.c +++ b/daemon/src/sip/tlsvalidation.c @@ -293,13 +293,16 @@ int containsPrivateKey(const char *pemPath) err = gnutls_global_init(); if (err != GNUTLS_E_SUCCESS) { ERROR("Could not init GnuTLS - %s", gnutls_strerror(err)); - goto out; + free(dt.data); + return res; } err = gnutls_x509_privkey_init(&key); if (err != GNUTLS_E_SUCCESS) { ERROR("Could not init key - %s", gnutls_strerror(err)); - goto out; + free(dt.data); + gnutls_global_deinit(); + return res; } err = gnutls_x509_privkey_import(key, &dt, GNUTLS_X509_FMT_PEM);