Reject a bad EDNS0_SUBNET family on unpack (not only on pack)

This commit is contained in:
Filippo Valsorda 2015-08-05 00:18:02 +01:00
parent 40484667f4
commit 155118a341
1 changed files with 3 additions and 2 deletions

View File

@ -257,8 +257,7 @@ func (e *EDNS0_SUBNET) pack() ([]byte, error) {
}
func (e *EDNS0_SUBNET) unpack(b []byte) error {
lb := len(b)
if lb < 4 {
if len(b) < 4 {
return ErrBuf
}
e.Family, _ = unpackUint16(b, 0)
@ -285,6 +284,8 @@ func (e *EDNS0_SUBNET) unpack(b []byte) error {
e.Address = net.IP{addr[0], addr[1], addr[2], addr[3], addr[4],
addr[5], addr[6], addr[7], addr[8], addr[9], addr[10],
addr[11], addr[12], addr[13], addr[14], addr[15]}
default:
return errors.New("dns: bad address family")
}
return nil
}