From 3c5c9da8be76049ac9a92c07d07ba17c357e8dc5 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Thu, 11 Oct 2012 13:06:27 +0200 Subject: [PATCH] we already know the length of message --- msg.go | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/msg.go b/msg.go index d41070bb..8b108b3b 100644 --- a/msg.go +++ b/msg.go @@ -234,14 +234,14 @@ func PackDomainName(s string, msg []byte, off int, compression map[string]int, c } // off can already (we're in a loop) be bigger than len(msg) // this happens when a name isn't fully qualified - if off+1 > len(msg) { + if off+1 > lenmsg { return lenmsg, ErrBuf } msg[off] = byte(i - begin) offset := off off++ for j := begin; j < i; j++ { - if off+1 > len(msg) { + if off+1 > lenmsg { return lenmsg, ErrBuf } msg[off] = bs[j] @@ -703,7 +703,7 @@ func unpackStructValue(val reflect.Value, msg []byte, off int) (off1 int, err er fv.Set(reflect.ValueOf(edns)) // multiple EDNS codes? case `dns:"a"`: - if off+net.IPv4len > len(msg) { + if off+net.IPv4len > lenmsg { return lenmsg, &Error{Err: "overflow unpacking a"} } fv.Set(reflect.ValueOf(net.IPv4(msg[off], msg[off+1], msg[off+2], msg[off+3])))