]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
3521. [bug] Address memory leak in opensslecdsa_link.c. [RT #32249]
authorMark Andrews <marka@isc.org>
Fri, 8 Mar 2013 09:55:30 +0000 (20:55 +1100)
committerMark Andrews <marka@isc.org>
Fri, 8 Mar 2013 10:15:27 +0000 (21:15 +1100)
(cherry picked from commit aababae79572d8c80fcec9b809671987007451c9)

CHANGES
lib/dns/opensslecdsa_link.c

diff --git a/CHANGES b/CHANGES
index fdc4836df897e4580fe46bedf6d6a107be973adf..0e7ddcbaa7cd715f4b781f71190570f562b3d5c2 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -1,3 +1,5 @@
+3521.  [bug]           Address memory leak in opensslecdsa_link.c. [RT #32249]
+
 3520.  [bug]           'mctx' was not being referenced counted in some places
                        where it should have been.  [RT #32794]
 
index 8234149aaed4f8baaa6b73ff12148445ce65df3d..bb4e9e2d8f43a79ba24b34afa3a7671518cb0c32 100644 (file)
@@ -207,8 +207,12 @@ opensslecdsa_verify(dst_context_t *dctx, const isc_region_t *sig) {
        ecdsasig = ECDSA_SIG_new();
        if (ecdsasig == NULL)
                DST_RET (ISC_R_NOMEMORY);
+       if (ecdsasig->r != NULL)
+               BN_free(ecdsasig->r);
        ecdsasig->r = BN_bin2bn(cp, siglen / 2, NULL);
        cp += siglen / 2;
+       if (ecdsasig->s != NULL)
+               BN_free(ecdsasig->s);
        ecdsasig->s = BN_bin2bn(cp, siglen / 2, NULL);
        /* cp += siglen / 2; */