From: Richard Mudgett Date: Wed, 7 Dec 2016 21:23:02 +0000 (-0600) Subject: res_rtp_asterisk.c: Fix off nominal memory leak. X-Git-Tag: 13.14.0-rc1~58 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=e2fa3c7edabd52b62830a32930b0b4aaf4bcb9ac;p=thirdparty%2Fasterisk.git res_rtp_asterisk.c: Fix off nominal memory leak. Change-Id: I95b1088d11244a2edae6607c12fbf33b38658a75 --- diff --git a/res/res_rtp_asterisk.c b/res/res_rtp_asterisk.c index 64b13722f4..1ae18fed35 100644 --- a/res/res_rtp_asterisk.c +++ b/res/res_rtp_asterisk.c @@ -1455,12 +1455,6 @@ static int ast_rtp_dtls_set_configuration(struct ast_rtp_instance *instance, con return -1; } - if (!(certbio = BIO_new(BIO_s_file()))) { - ast_log(LOG_ERROR, "Failed to allocate memory for certificate fingerprinting on RTP instance '%p'\n", - instance); - return -1; - } - if (rtp->local_hash == AST_RTP_DTLS_HASH_SHA1) { type = EVP_sha1(); } else if (rtp->local_hash == AST_RTP_DTLS_HASH_SHA256) { @@ -1471,6 +1465,12 @@ static int ast_rtp_dtls_set_configuration(struct ast_rtp_instance *instance, con return -1; } + if (!(certbio = BIO_new(BIO_s_file()))) { + ast_log(LOG_ERROR, "Failed to allocate memory for certificate fingerprinting on RTP instance '%p'\n", + instance); + return -1; + } + if (!BIO_read_filename(certbio, dtls_cfg->certfile) || !(cert = PEM_read_bio_X509(certbio, NULL, 0, NULL)) || !X509_digest(cert, type, fingerprint, &size) ||