tbotd/vendor/src/github.com/Sereal/Sereal/Go/sereal/cmd/fuzzer/main.go

32 lines
651 B
Go

package main
import (
crand "crypto/rand"
"encoding/hex"
"fmt"
"github.com/Sereal/Sereal/Go/sereal"
mrand "math/rand"
)
func main() {
srlHeader, _ := hex.DecodeString("3d73726c0100")
var decoder sereal.Decoder
decoder.PerlCompat = true
for {
l := len(srlHeader) + mrand.Intn(200)
b := make([]byte, l)
crand.Read(b)
doc := make([]byte, l + len(srlHeader))
copy(doc, srlHeader)
copy(doc[6:], b)
fmt.Println(hex.Dump(doc))
var m interface{}
err := decoder.Unmarshal(doc, &m)
fmt.Println("err=", err)
}
}