aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2017-08-31 08:20:13 +0200
committerGravatar GitHub <noreply@github.com> 2017-08-31 08:20:13 +0200
commitc72084187c42a526e4b754741c392a38733ceec2 (patch)
tree2f6ead69fecff4e550ba988d2fe7eb873c9f7fca
parent3974071f483f4cc8ae59140eaf4ade7808e3e761 (diff)
downloadcoredns-c72084187c42a526e4b754741c392a38733ceec2.tar.gz
coredns-c72084187c42a526e4b754741c392a38733ceec2.tar.zst
coredns-c72084187c42a526e4b754741c392a38733ceec2.zip
core: add nil check (#1005)
Check if msg is nil in DefaultErrorFunc. If this is the case log this and short cut the function. Hoping to get more insight in #925
-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())