浏览代码

fix parse frame with negative frame size

Chris Bannister 10 年之前
父节点
当前提交
332853ab7b
共有 1 个文件被更改,包括 4 次插入0 次删除
  1. 4 0
      frame.go

+ 4 - 0
frame.go

@@ -328,6 +328,10 @@ func (f *framer) trace() {
 
 
 // reads a frame form the wire into the framers buffer
 // reads a frame form the wire into the framers buffer
 func (f *framer) readFrame(head *frameHeader) error {
 func (f *framer) readFrame(head *frameHeader) error {
+	if head.length < 0 {
+		return fmt.Errorf("frame body length can not be less than 0: %d", head.length)
+	}
+
 	if cap(f.readBuffer) >= head.length {
 	if cap(f.readBuffer) >= head.length {
 		f.rbuf = f.readBuffer[:head.length]
 		f.rbuf = f.readBuffer[:head.length]
 	} else {
 	} else {