aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/dnsserver/server.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/core/dnsserver/server.go b/core/dnsserver/server.go
index 3f01cac5f..8e2f0ba76 100644
--- a/core/dnsserver/server.go
+++ b/core/dnsserver/server.go
@@ -289,6 +289,12 @@ func DefaultErrorFunc(w dns.ResponseWriter, r *dns.Msg, rc int) {
answer := new(dns.Msg)
answer.SetRcode(r, rc)
+ if r == nil {
+ log.Printf("[WARNING] DefaultErrorFunc called with nil *dns.Msg (Remote: %s)", w.RemoteAddr().String())
+ w.WriteMsg(answer)
+ return
+ }
+
state.SizeAndDo(answer)
vars.Report(state, vars.Dropped, rcode.ToString(rc), answer.Len(), time.Now())