fix buffer overrun in unpack()
This commit is contained in:
parent
3a660df5ae
commit
d92b230e89
4
edns.go
4
edns.go
|
@ -287,7 +287,7 @@ func (e *EDNS0_SUBNET) unpack(b []byte) error {
|
||||||
case 1:
|
case 1:
|
||||||
addr := make([]byte, 4)
|
addr := make([]byte, 4)
|
||||||
for i := 0; i < int(e.SourceNetmask/8); i++ {
|
for i := 0; i < int(e.SourceNetmask/8); i++ {
|
||||||
if 4+i > len(b) {
|
if i >= len(addr) || 4+i >= len(b) {
|
||||||
return ErrBuf
|
return ErrBuf
|
||||||
}
|
}
|
||||||
addr[i] = b[4+i]
|
addr[i] = b[4+i]
|
||||||
|
@ -296,7 +296,7 @@ func (e *EDNS0_SUBNET) unpack(b []byte) error {
|
||||||
case 2:
|
case 2:
|
||||||
addr := make([]byte, 16)
|
addr := make([]byte, 16)
|
||||||
for i := 0; i < int(e.SourceNetmask/8); i++ {
|
for i := 0; i < int(e.SourceNetmask/8); i++ {
|
||||||
if 4+i > len(b) {
|
if i >= len(addr) || 4+i >= len(b) {
|
||||||
return ErrBuf
|
return ErrBuf
|
||||||
}
|
}
|
||||||
addr[i] = b[4+i]
|
addr[i] = b[4+i]
|
||||||
|
|
Loading…
Reference in New Issue