core: drop invalid packets (#1123)

We can still be on the receiving end of invalid packet. Drop them
here.
This commit is contained in:
Miek Gieben
2017-09-29 22:27:40 +01:00
committed by GitHub
parent 2f9c42d82e
commit 23526aec1d

View File

@@ -179,6 +179,13 @@ func (s *Server) Address() string { return s.Addr }
// defined in the request so that the correct zone
// (configuration and plugin stack) will handle the request.
func (s *Server) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg) {
// our dns library protects us against really invalid packets, we can still
// get semi valid packets. Drop them here.
if r == nil || len(r.Question) == 0 {
DefaultErrorFunc(w, r, dns.RcodeServerFailure)
return
}
if !s.debug {
defer func() {
// In case the user doesn't enable error plugin, we still