]> 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:12:42 +0000 (21:12 +1100)
CHANGES
lib/dns/opensslecdsa_link.c

diff --git a/CHANGES b/CHANGES
index 4145fdeba07803d1891d3964f343c9153a2d4db7..82a83fe1f3abb9f21a8f2aaae265e41022587a71 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 c09daa48aab1aecef6b2a3e098dc8b3e99f77a14..20fa07685ed4f965c1098a3d57a251a3e660b356 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; */