]> git.ipfire.org Git - thirdparty/ldns.git/commitdiff
ldns_convert_dsa_rrsig_rdf2asn1: fix memory leak
authorEnji Cooper <yaneurabeya@gmail.com>
Thu, 6 Jun 2024 05:25:36 +0000 (22:25 -0700)
committerEnji Cooper <yaneurabeya@gmail.com>
Thu, 6 Jun 2024 05:31:48 +0000 (22:31 -0700)
Prior to this change `dsasig` was not freed when calling `DSA_SIG_set0`
failed. Free `dsasig` on error in that code path now.

Reported by: Coverity
Signed-off-by: Enji Cooper <yaneurabeya@gmail.com>
dnssec.c

index 9055284c08108855ca2f2685170266801221bc61..0a7beb4ebfd41a2b97661bbefb2da6162c4e98e2 100644 (file)
--- a/dnssec.c
+++ b/dnssec.c
@@ -1836,8 +1836,10 @@ ldns_convert_dsa_rrsig_rdf2asn1(ldns_buffer *target_buffer,
                return LDNS_STATUS_MEM_ERR;
        }
 # ifdef HAVE_DSA_SIG_SET0
-       if (! DSA_SIG_set0(dsasig, R, S))
-              return LDNS_STATUS_SSL_ERR;
+       if (! DSA_SIG_set0(dsasig, R, S)) {
+               DSA_SIG_free(dsasig);
+               return LDNS_STATUS_SSL_ERR;
+       }
 # else
        dsasig->r = R;
        dsasig->s = S;