Selaa lähdekoodia

ensure we have enough bytes to read 1 byte

Chris Bannister 10 vuotta sitten
vanhempi
commit
c573f5db2c
2 muutettua tiedostoa jossa 6 lisäystä ja 0 poistoa
  1. 4 0
      frame.go
  2. 2 0
      frame_test.go

+ 4 - 0
frame.go

@@ -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

+ 2 - 0
frame_test.go

@@ -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 {