1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34
|
package ossfuzz
import (
"bytes"
"fmt"
"github.com/BurntSushi/toml"
)
func FuzzToml(data []byte) int {
if len(data) >= 2048 {
return 0
}
var v any
_, err := toml.Decode(string(data), &v)
if err != nil {
return 0
}
buf := new(bytes.Buffer)
err = toml.NewEncoder(buf).Encode(v)
if err != nil {
panic(fmt.Sprintf("failed to encode decoded document: %s", err))
}
var v2 any
_, err = toml.Decode(buf.String(), &v2)
if err != nil {
panic(fmt.Sprintf("failed round trip: %s", err))
}
return 1
}
|