diff options
author | 2017-08-31 08:20:13 +0200 | |
---|---|---|
committer | 2017-08-31 08:20:13 +0200 | |
commit | c72084187c42a526e4b754741c392a38733ceec2 (patch) | |
tree | 2f6ead69fecff4e550ba988d2fe7eb873c9f7fca | |
parent | 3974071f483f4cc8ae59140eaf4ade7808e3e761 (diff) | |
download | coredns-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.go | 6 |
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()) |