From 4e192d2fe7cbfd8a54bc4de97e80f2bd5c0c16d7 Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Mon, 22 Feb 2021 09:44:56 +1100 Subject: [PATCH] Address theoretical resource leak in dns_dt_open() dns_dt_open() is not currently called with mode dns_dtmode_unix. *** CID 281489: Resource leaks (RESOURCE_LEAK) /lib/dns/dnstap.c: 983 in dns_dt_open() 977 978 if (!dnstap_file(handle->reader)) { 979 CHECK(DNS_R_BADDNSTAP); 980 } 981 break; 982 case dns_dtmode_unix: CID 281489: Resource leaks (RESOURCE_LEAK) Variable "handle" going out of scope leaks the storage it points to. 983 return (ISC_R_NOTIMPLEMENTED); 984 default: 985 INSIST(0); 986 ISC_UNREACHABLE(); 987 } 988 (cherry picked from commit 003dd8cc700931509a6dfac4a4faab4084a2f085) --- lib/dns/dnstap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/lib/dns/dnstap.c b/lib/dns/dnstap.c index fdebb266bb..912dca4bed 100644 --- a/lib/dns/dnstap.c +++ b/lib/dns/dnstap.c @@ -980,7 +980,8 @@ dns_dt_open(const char *filename, dns_dtmode_t mode, isc_mem_t *mctx, } break; case dns_dtmode_unix: - return (ISC_R_NOTIMPLEMENTED); + result = ISC_R_NOTIMPLEMENTED; + goto cleanup; default: INSIST(0); ISC_UNREACHABLE();