Index: res/res_rtp_asterisk.c =================================================================== --- res/res_rtp_asterisk.c (revision 434725) +++ res/res_rtp_asterisk.c (working copy) @@ -1285,7 +1285,7 @@ if (!ast_strlen_zero(dtls_cfg->certfile)) { char *private = ast_strlen_zero(dtls_cfg->pvtfile) ? dtls_cfg->certfile : dtls_cfg->pvtfile; BIO *certbio; - X509 *cert; + X509 *cert = NULL; const EVP_MD *type; unsigned int size, i; unsigned char fingerprint[EVP_MAX_MD_SIZE]; @@ -1327,6 +1327,9 @@ ast_log(LOG_ERROR, "Could not produce fingerprint from certificate '%s' for RTP instance '%p'\n", dtls_cfg->certfile, instance); BIO_free_all(certbio); + if (cert) { + X509_free(cert); + } return -1; } @@ -1338,6 +1341,7 @@ *(local_fingerprint-1) = 0; BIO_free_all(certbio); + X509_free(cert); } if (!ast_strlen_zero(dtls_cfg->cipher)) {