aboutsummaryrefslogtreecommitdiff
path: root/request
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2018-05-09 12:35:42 +0100
committerGravatar GitHub <noreply@github.com> 2018-05-09 12:35:42 +0100
commit0e5e59c327387472c60fb5f2f2c7d84a89b879c9 (patch)
tree48a0c7a1fcb6e94fc889e1cd4fd57632414f3e16 /request
parent68b45f5377ff0c8661f987398e316f3acae4835d (diff)
downloadcoredns-0e5e59c327387472c60fb5f2f2c7d84a89b879c9.tar.gz
coredns-0e5e59c327387472c60fb5f2f2c7d84a89b879c9.tar.zst
coredns-0e5e59c327387472c60fb5f2f2c7d84a89b879c9.zip
request.Match check Response bit as well (#1775)
* request.Match check Response bit as well We should check this bit and reject them as invalid. * Fix test
Diffstat (limited to 'request')
-rw-r--r--request/request.go4
-rw-r--r--request/request_test.go1
2 files changed, 5 insertions, 0 deletions
diff --git a/request/request.go b/request/request.go
index c45f6e571..64504e6b4 100644
--- a/request/request.go
+++ b/request/request.go
@@ -380,6 +380,10 @@ func (r *Request) Match(reply *dns.Msg) bool {
return false
}
+ if reply.Response == false {
+ return false
+ }
+
if strings.ToLower(reply.Question[0].Name) != r.Name() {
return false
}
diff --git a/request/request_test.go b/request/request_test.go
index 41630d669..97f17a605 100644
--- a/request/request_test.go
+++ b/request/request_test.go
@@ -162,6 +162,7 @@ func TestRequestScrubAnswerExact(t *testing.T) {
func TestRequestMatch(t *testing.T) {
st := testRequest()
reply := new(dns.Msg)
+ reply.Response = true
reply.SetQuestion("example.com.", dns.TypeMX)
if b := st.Match(reply); b {