Also check when unpacking for domainnames > 255
This commit is contained in:
parent
4c6d89f727
commit
ff22456520
4
msg.go
4
msg.go
|
@ -331,6 +331,7 @@ func UnpackDomainName(msg []byte, off int) (s string, off1 int, err error) {
|
||||||
s = ""
|
s = ""
|
||||||
lenmsg := len(msg)
|
lenmsg := len(msg)
|
||||||
ptr := 0 // number of pointers followed
|
ptr := 0 // number of pointers followed
|
||||||
|
offstart := off
|
||||||
Loop:
|
Loop:
|
||||||
for {
|
for {
|
||||||
if off >= lenmsg {
|
if off >= lenmsg {
|
||||||
|
@ -391,6 +392,9 @@ Loop:
|
||||||
if ptr == 0 {
|
if ptr == 0 {
|
||||||
off1 = off
|
off1 = off
|
||||||
}
|
}
|
||||||
|
if off1 - offstart > 255 {
|
||||||
|
return "", lenmsg, ErrDomain
|
||||||
|
}
|
||||||
return s, off1, nil
|
return s, off1, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue