]> git.ipfire.org Git - thirdparty/bind9.git/commitdiff
Call dst_lib_destroy if we have called dst_lib_init
authorMark Andrews <marka@isc.org>
Sun, 29 Jan 2023 22:29:56 +0000 (09:29 +1100)
committerMark Andrews <marka@isc.org>
Tue, 31 Jan 2023 13:34:33 +0000 (00:34 +1100)
This returns BIGNUMs to OpenSSL allowing libcrypto to fully clean up.

fuzz/dns_message_checksig.c

index 6480c7672750057b6c4737c85cb18c86ba3a8da2..a77dd227469361561b01ad74cc302232aabd7ff2 100644 (file)
@@ -123,6 +123,8 @@ static char c3[] = "sig0key. 0 IN SOA . . 0 0 0 0 0\n\
 sig0key. 0 IN NS .\n\
 sig0key. 0 IN KEY 512 3 8 AwEAAa22lgHi1vAbQvu5ETdTrm2H8rwga9tvyMa6LFiSDyevLvSv0Uo5 uvfrXnxaLdtBMts6e1Ly2piSH9JRbOGMNibOK4EXWhWAn8MII4SWgQAs bFwtiz4HyPn2wScrUQdo8DocKiQJBanesr7vDO8fdA6Rg1e0yAtSeNti e8avx46/HJa6CFs3CoE0sf6oOFSxM954AgCBTXOGNBt1Nt3Bhfqt2qyA TLFii5K1jLDTZDVkoiyDXL1M7wcTwKf9METgj1eQmH3GGlRM/OJ/j8xk ZiFGbL3cipWdiH48031jiV2hlc92mKn8Ya0d9AN6c44piza/JSFydZXw sY32nxzjDbs=\n";
 
+static bool destroy_dst = false;
+
 static void
 cleanup(void) {
        char pathbuf[PATH_MAX];
@@ -140,6 +142,9 @@ cleanup(void) {
        if (emptyring != NULL) {
                dns_tsigkeyring_detach(&emptyring);
        }
+       if (destroy_dst) {
+               dst_lib_destroy();
+       }
        if (mctx != NULL) {
                isc_mem_detach(&mctx);
        }
@@ -228,6 +233,7 @@ LLVMFuzzerInitialize(int *argc __attribute__((unused)),
                        isc_result_totext(result));
                return (1);
        }
+       destroy_dst = true;
 
        result = dns_view_create(mctx, dns_rdataclass_in, "view", &view);
        if (result != ISC_R_SUCCESS) {