From 414013f99f81b02309cda66fe7314f09a3f062ec Mon Sep 17 00:00:00 2001 From: Andrew Tunnell-Jones Date: Tue, 11 Nov 2014 23:32:03 +0000 Subject: [PATCH] Add test covering unpacking 0-length rdatas --- update_test.go | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/update_test.go b/update_test.go index 00e269b3..da36334f 100644 --- a/update_test.go +++ b/update_test.go @@ -1,8 +1,6 @@ package dns -import ( - "testing" -) +import "testing" func TestDynamicUpdateParsing(t *testing.T) { prefix := "example.com. IN " @@ -34,3 +32,23 @@ func TestDynamicUpdateUnpack(t *testing.T) { t.Fail() } } + +func TestDynamicUpdateZeroRdataUnpack(t *testing.T) { + m := new(Msg) + rr := &RR_Header{Name: ".", Rrtype: 0, Class: 1, Ttl: ^uint32(0), Rdlength: 0} + m.Answer = []RR{rr, rr, rr, rr, rr} + m.Ns = m.Answer + for n, s := range TypeToString { + rr.Rrtype = n + bytes, err := m.Pack() + if err != nil { + t.Logf("failed to pack %s: %v", s, err) + t.Fail() + continue + } + if err := new(Msg).Unpack(bytes); err != nil { + t.Logf("failed to unpack %s: %v", s, err) + t.Fail() + } + } +}