From 1ab07c81abe0026f3129af8c50459ff0e01fdb2c Mon Sep 17 00:00:00 2001 From: "arraykeys@gmail.com" Date: Wed, 19 Sep 2018 15:45:15 +0800 Subject: [PATCH] a --- utils/functions.go | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/utils/functions.go b/utils/functions.go index 56f91be..58ba7da 100755 --- a/utils/functions.go +++ b/utils/functions.go @@ -371,11 +371,20 @@ func RandInt(strLen int) int64 { return i } func ReadBytes(r io.Reader) (data []byte, err error) { + defer func() { + if e := recover(); e != nil { + err = fmt.Errorf("read bytes fail ,err : %s", e) + } + }() var len uint64 err = binary.Read(r, binary.LittleEndian, &len) if err != nil { return } + if len == 0 || len > ^uint64(0) { + err = fmt.Errorf("data len out of range, %d", len) + return + } var n int data = make([]byte, len) n, err = r.Read(data)