From f53eb22bfbe0959c449c03aa136f0e398813afd9 Mon Sep 17 00:00:00 2001 From: Miek Gieben Date: Thu, 5 May 2016 16:56:17 +0100 Subject: [PATCH] Check length before packing OPT (#352) fixes #351 --- msg.go | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/msg.go b/msg.go index 52afbc59..41b6e0da 100644 --- a/msg.go +++ b/msg.go @@ -596,7 +596,7 @@ func packStructValue(val reflect.Value, msg []byte, off int, compression map[str for j := 0; j < val.Field(i).Len(); j++ { element := val.Field(i).Index(j).Interface() b, e := element.(EDNS0).pack() - if e != nil { + if e != nil || off+3 > lenmsg { return lenmsg, &Error{err: "overflow packing opt"} } // Option code