diff options
Diffstat (limited to 'core/vm/runtime/fuzz.go')
-rw-r--r-- | core/vm/runtime/fuzz.go | 20 |
1 files changed, 20 insertions, 0 deletions
diff --git a/core/vm/runtime/fuzz.go b/core/vm/runtime/fuzz.go new file mode 100644 index 000000000..de5b0f45d --- /dev/null +++ b/core/vm/runtime/fuzz.go @@ -0,0 +1,20 @@ +// +build gofuzz + +package runtime + +// Fuzz is the basic entry point for the go-fuzz tool +// +// This returns 1 for valid parsable/runable code, 0 +// for invalid opcode. +func Fuzz(input []byte) int { + _, _, err := Execute(input, input, &Config{ + GasLimit: 3000000, + }) + + // invalid opcode + if err != nil && len(err.Error()) > 6 && string(err.Error()[:7]) == "invalid" { + return 0 + } + + return 1 +} |