x/net/spdy: stream id zero is disallowed (original) (raw)
The following program crashes:
package main
import ( "bytes" "encoding/hex" "golang.org/x/net/spdy" "io/ioutil" )
func main() { data, _ := hex.DecodeString("0000000030000000") framer, err := spdy.NewFramer(ioutil.Discard, bytes.NewReader(data)) if err != nil { panic(err) } for score := 0; ; score++ { f, err := framer.ReadFrame() if err != nil { if f != nil { panic(err) } return } err = framer.WriteFrame(f) if err != nil { panic(err) } } }
panic: stream id zero is disallowed
goroutine 1 [running]:
runtime.gopanic(0x6904e0, 0xc20800e8c0)
src/runtime/panic.go:477 +0x410 fp=0xc20804fec8 sp=0xc20804fe48
main.main()
spdy.go:20 +0x1fb fp=0xc20804ff90 sp=0xc20804fec8
Either WriteFrame must be able to handle ReadFrame output, or ReadFrame must not produce this output (error instead).
on commit 6f62f426de90c0ed6a55207b51476115fcb17237