aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--core/vm/runtime/fuzz.go20
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
+}