aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGravatar Miek Gieben <miek@miek.nl> 2016-10-17 10:26:24 +0000
committerGravatar Miek Gieben <miek@miek.nl> 2016-10-17 10:26:24 +0000
commit03bc071774d7b1474d0d5a14c9734c1379988e55 (patch)
treee644e9bbf7d2c55ea21d7d971183a83af89002fb
parentbe3c0195b68ab47048959bd04d2fc8b60590c730 (diff)
downloadcoredns-03bc071774d7b1474d0d5a14c9734c1379988e55.tar.gz
coredns-03bc071774d7b1474d0d5a14c9734c1379988e55.tar.zst
coredns-03bc071774d7b1474d0d5a14c9734c1379988e55.zip
Check for empty message in typify
-rw-r--r--middleware/pkg/response/typify.go4
-rw-r--r--middleware/pkg/response/typify_test.go9
2 files changed, 13 insertions, 0 deletions
diff --git a/middleware/pkg/response/typify.go b/middleware/pkg/response/typify.go
index 20ec13453..f121ecccf 100644
--- a/middleware/pkg/response/typify.go
+++ b/middleware/pkg/response/typify.go
@@ -58,6 +58,10 @@ func TypeFromString(s string) (Type, error) {
// Typify classifies a message, it returns the Type.
func Typify(m *dns.Msg) (Type, *dns.OPT) {
+ if m == nil {
+ return OtherError, nil
+ }
+
opt := m.IsEdns0()
if len(m.Answer) > 0 && m.Rcode == dns.RcodeSuccess {
diff --git a/middleware/pkg/response/typify_test.go b/middleware/pkg/response/typify_test.go
index dbd11c129..8d0644e3b 100644
--- a/middleware/pkg/response/typify_test.go
+++ b/middleware/pkg/response/typify_test.go
@@ -8,6 +8,15 @@ import (
"github.com/miekg/dns"
)
+func TestTypifyNilMsg(t *testing.T) {
+ var m *dns.Msg = nil
+
+ ty, _ := Typify(m)
+ if ty != OtherError {
+ t.Errorf("message wrongly typified, expected OtherError, got %d", ty)
+ }
+}
+
func TestClassifyDelegation(t *testing.T) {
m := delegationMsg()
mt, _ := Typify(m)