]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
Stop memory leak on error condition.
authorWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 23 Mar 2016 09:18:29 +0000 (09:18 +0000)
committerWouter Wijngaards <wouter@nlnetlabs.nl>
Wed, 23 Mar 2016 09:18:29 +0000 (09:18 +0000)
git-svn-id: file:///svn/unbound/trunk@3694 be551aaa-1e26-0410-a405-d3ace91eadb9

validator/val_secalgo.c

index ca308d5e0cbdc1abe8b04378337fb2d6946bac14..912448a2ec002df1cd3ff4f0126f30c501c13773 100644 (file)
@@ -599,6 +599,7 @@ verify_canonrrset(sldns_buffer* buf, int algo, unsigned char* sigblock,
        }
        if(EVP_VerifyInit(ctx, digest_type) == 0) {
                verbose(VERB_QUERY, "verify: EVP_VerifyInit failed");
+               EVP_MD_CTX_destroy(ctx);
                EVP_PKEY_free(evp_key);
                if(dofree) free(sigblock);
                return sec_status_unchecked;
@@ -606,6 +607,7 @@ verify_canonrrset(sldns_buffer* buf, int algo, unsigned char* sigblock,
        if(EVP_VerifyUpdate(ctx, (unsigned char*)sldns_buffer_begin(buf), 
                (unsigned int)sldns_buffer_limit(buf)) == 0) {
                verbose(VERB_QUERY, "verify: EVP_VerifyUpdate failed");
+               EVP_MD_CTX_destroy(ctx);
                EVP_PKEY_free(evp_key);
                if(dofree) free(sigblock);
                return sec_status_unchecked;