From 13f81feb31ab54fabc95b38764fd2d55079edd1f Mon Sep 17 00:00:00 2001 From: Michael Hoisie Date: Sun, 18 Apr 2010 14:46:24 -0700 Subject: [PATCH] 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 --- src/pkg/net/dnsmsg.go | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/src/pkg/net/dnsmsg.go b/src/pkg/net/dnsmsg.go index adedcab993..5091896392 100644 --- a/src/pkg/net/dnsmsg.go +++ b/src/pkg/net/dnsmsg.go @@ -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 -- 2.50.0