From 3c93986b575b80f5dd9d5d65d6dbb6371bf3619a Mon Sep 17 00:00:00 2001 From: Chris Gianelloni Date: Tue, 19 Nov 2024 10:23:04 -0500 Subject: [PATCH] fix: guard against nil responses Signed-off-by: Chris Gianelloni --- internal/dns/dns.go | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/internal/dns/dns.go b/internal/dns/dns.go index 8c4cd2d..b3eef45 100644 --- a/internal/dns/dns.go +++ b/internal/dns/dns.go @@ -297,6 +297,9 @@ func stateRecordToDnsRR(record state.DomainRecord) (dns.RR, error) { } func copyResponse(req *dns.Msg, srcResp *dns.Msg, destResp *dns.Msg) { + if srcResp == nil { + return + } // Copy relevant data from original request and source response into destination response destResp.SetRcode(req, srcResp.MsgHdr.Rcode) destResp.RecursionDesired = req.RecursionDesired @@ -345,6 +348,9 @@ func doQuery(msg *dns.Msg, address string, recursive bool) (*dns.Msg, error) { if err != nil { return nil, err } + if resp == nil { + return nil, fmt.Errorf("dns response empty") + } slog.Debug( fmt.Sprintf( "response: rcode=%s, authoritative=%v, authority=%s, answer=%s, extra=%s",