]> git.ipfire.org Git - thirdparty/asterisk.git/commitdiff
res_rtp_asterisk.c: Fix off nominal memory leak. 46/4646/1
authorRichard Mudgett <rmudgett@digium.com>
Wed, 7 Dec 2016 21:23:02 +0000 (15:23 -0600)
committerRichard Mudgett <rmudgett@digium.com>
Wed, 21 Dec 2016 17:15:09 +0000 (11:15 -0600)
Change-Id: I95b1088d11244a2edae6607c12fbf33b38658a75

res/res_rtp_asterisk.c

index afaa1f0511831d83b4c4932c4f5818e9712c8ef9..e15983eb1184cfb8672061e57d8afbb593a43307 100644 (file)
@@ -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) ||