summaryrefslogtreecommitdiff
path: root/libgo/go/golang_org/x/net/route/message.go
diff options
context:
space:
mode:
Diffstat (limited to 'libgo/go/golang_org/x/net/route/message.go')
-rw-r--r--libgo/go/golang_org/x/net/route/message.go6
1 files changed, 6 insertions, 0 deletions
diff --git a/libgo/go/golang_org/x/net/route/message.go b/libgo/go/golang_org/x/net/route/message.go
index 27cbf6b77ac..d7ae0eb50fc 100644
--- a/libgo/go/golang_org/x/net/route/message.go
+++ b/libgo/go/golang_org/x/net/route/message.go
@@ -42,6 +42,12 @@ func ParseRIB(typ RIBType, b []byte) ([]Message, error) {
for len(b) > 4 {
nmsgs++
l := int(nativeEndian.Uint16(b[:2]))
+ if l == 0 {
+ return nil, errInvalidMessage
+ }
+ if len(b) < l {
+ return nil, errMessageTooShort
+ }
if b[2] != sysRTM_VERSION {
b = b[l:]
continue