diff options
Diffstat (limited to 'plugin/rewrite/rewrite.go')
-rw-r--r-- | plugin/rewrite/rewrite.go | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/plugin/rewrite/rewrite.go b/plugin/rewrite/rewrite.go index b4bdd5e20..643f2d7c9 100644 --- a/plugin/rewrite/rewrite.go +++ b/plugin/rewrite/rewrite.go @@ -44,6 +44,13 @@ func (rw Rewrite) ServeDNS(ctx context.Context, w dns.ResponseWriter, r *dns.Msg for _, rule := range rw.Rules { switch result := rule.Rewrite(ctx, state); result { case RewriteDone: + if !validName(state.Req.Question[0].Name) { + x := state.Req.Question[0].Name + log.Errorf("Invalid name after rewrite: %s", x) + state.Req.Question[0] = wr.originalQuestion + return dns.RcodeServerFailure, fmt.Errorf("invalid name after rewrite: %s", x) + } + respRule := rule.GetResponseRule() if respRule.Active == true { wr.ResponseRewrite = true |