ensure we have enough bytes to read 1 byte
@@ -1193,6 +1193,10 @@ func (f *framer) writeBatchFrame(streamID int, w *writeBatchFrame) error {
}
func (f *framer) readByte() byte {
+ if len(f.rbuf) < 1 {
+ panic(fmt.Errorf("not enough bytes in buffer to read byte require 1 got: %d", len(f.rbuf)))
+ }
+
b := f.rbuf[0]
f.rbuf = f.rbuf[1:]
return b
@@ -21,6 +21,8 @@ func TestFuzzBugs(t *testing.T) {
"0000000"),
[]byte("\x82\xe600\x00\x00\x00\x000"),
[]byte("\x8200\b\x00\x00\x00\b0\x00\x00\x00\x040000"),
+ []byte("\x8200\x00\x00\x00\x00\x100\x00\x00\x12\x00\x00\x0000000" +
+ "00000"),
for i, test := range tests {