THRIFT-2839 TFramedTransport read bug
Client: Go
Patch: Chi Vinh Le <cvl@chinet.info>
diff --git a/lib/go/thrift/framed_transport.go b/lib/go/thrift/framed_transport.go
index bfecbe8..21c636d 100644
--- a/lib/go/thrift/framed_transport.go
+++ b/lib/go/thrift/framed_transport.go
@@ -79,7 +79,14 @@
 		}
 	}
 	if p.frameSize < len(buf) {
-		return 0, NewTTransportExceptionFromError(fmt.Errorf("Not enought frame size %d to read %d bytes", p.frameSize, len(buf)))
+		frameSize := p.frameSize
+		tmp := make([]byte, p.frameSize)
+		l, err = p.Read(tmp)
+		copy(buf, tmp)
+		if err == nil {
+			err = NewTTransportExceptionFromError(fmt.Errorf("Not enough frame size %d to read %d bytes", frameSize, len(buf)))
+			return
+		}
 	}
 	got, err := p.reader.Read(buf)
 	p.frameSize = p.frameSize - got
@@ -98,7 +105,7 @@
 		}
 	}
 	if p.frameSize < 1 {
-		return 0, NewTTransportExceptionFromError(fmt.Errorf("Not enought frame size %d to read %d bytes", p.frameSize, 1))
+		return 0, NewTTransportExceptionFromError(fmt.Errorf("Not enough frame size %d to read %d bytes", p.frameSize, 1))
 	}
 	c, err = p.reader.ReadByte()
 	if err == nil {