2022-04-01 16:16:46 +00:00
|
|
|
//go:build gofuzz
|
2018-07-04 10:51:47 +00:00
|
|
|
|
|
|
|
package msgio
|
|
|
|
|
|
|
|
import "bytes"
|
|
|
|
|
|
|
|
// get the go-fuzz tools and build a fuzzer
|
|
|
|
// $ go get -u github.com/dvyukov/go-fuzz/...
|
|
|
|
// $ go-fuzz-build github.com/libp2p/go-msgio
|
|
|
|
|
|
|
|
// put a corpus of random (even better if actual, structured) data in a corpus directry
|
|
|
|
// $ go-fuzz -bin ./msgio-fuzz -corpus corpus -workdir=wdir -timeout=15
|
|
|
|
|
|
|
|
func Fuzz(data []byte) int {
|
|
|
|
rc := NewReader(bytes.NewReader(data))
|
|
|
|
// rc := NewVarintReader(bytes.NewReader(data))
|
|
|
|
|
|
|
|
if _, err := rc.ReadMsg(); err != nil {
|
|
|
|
return 0
|
|
|
|
}
|
|
|
|
|
|
|
|
return 1
|
|
|
|
}
|