aboutsummaryrefslogtreecommitdiff
path: root/plugin/rewrite/rewrite.go
diff options
context:
space:
mode:
Diffstat (limited to 'plugin/rewrite/rewrite.go')
-rw-r--r--plugin/rewrite/rewrite.go7
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