mirror of
https://github.com/golang/go
synced 2024-11-22 07:14:40 -07:00
net: fix bugs in packStructValue
packStructValue was cutting off last byte of uint32 in _Dns_msg.Unpack, use packRR for rr types R=rsc CC=golang-dev https://golang.org/cl/844048
This commit is contained in:
parent
3cfa2c3ddf
commit
13f81feb31
@ -389,7 +389,7 @@ func packStructValue(val *reflect.StructValue, msg []byte, off int) (off1 int, o
|
||||
msg[off] = byte(i >> 24)
|
||||
msg[off+1] = byte(i >> 16)
|
||||
msg[off+2] = byte(i >> 8)
|
||||
msg[off+4] = byte(i)
|
||||
msg[off+3] = byte(i)
|
||||
off += 4
|
||||
case *reflect.StringValue:
|
||||
// There are multiple string encodings.
|
||||
@ -633,13 +633,13 @@ func (dns *_DNS_Msg) Pack() (msg []byte, ok bool) {
|
||||
off, ok = packStruct(&question[i], msg, off)
|
||||
}
|
||||
for i := 0; i < len(answer); i++ {
|
||||
off, ok = packStruct(answer[i], msg, off)
|
||||
off, ok = packRR(answer[i], msg, off)
|
||||
}
|
||||
for i := 0; i < len(ns); i++ {
|
||||
off, ok = packStruct(ns[i], msg, off)
|
||||
off, ok = packRR(ns[i], msg, off)
|
||||
}
|
||||
for i := 0; i < len(extra); i++ {
|
||||
off, ok = packStruct(extra[i], msg, off)
|
||||
off, ok = packRR(extra[i], msg, off)
|
||||
}
|
||||
if !ok {
|
||||
return nil, false
|
||||
|
Loading…
Reference in New Issue
Block a user