diff options
author | jm <jm.huang@cobinhood.com> | 2019-01-15 00:48:13 +0800 |
---|---|---|
committer | Jhih-Ming Huang <jm.huang@cobinhood.com> | 2019-05-06 10:44:03 +0800 |
commit | 266068a53cdf9e06acacf982d63653c03133a634 (patch) | |
tree | af2d74e6adb309adfe39bafaa2f540fe0bcd1a31 /core/vm/evm/runtime/fuzz.go | |
parent | d41cb421d755b8f0bca87b7476f26aa4b879b9d9 (diff) | |
download | dexon-266068a53cdf9e06acacf982d63653c03133a634.tar.gz dexon-266068a53cdf9e06acacf982d63653c03133a634.tar.zst dexon-266068a53cdf9e06acacf982d63653c03133a634.zip |
core: vm: refactor file structure
For support other vm types, this pr modified the core/vm file
structures.
Diffstat (limited to 'core/vm/evm/runtime/fuzz.go')
-rw-r--r-- | core/vm/evm/runtime/fuzz.go | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/core/vm/evm/runtime/fuzz.go b/core/vm/evm/runtime/fuzz.go new file mode 100644 index 000000000..cb9ff08b5 --- /dev/null +++ b/core/vm/evm/runtime/fuzz.go @@ -0,0 +1,36 @@ +// Copyright 2017 The go-ethereum Authors +// This file is part of the go-ethereum library. +// +// The go-ethereum library is free software: you can redistribute it and/or modify +// it under the terms of the GNU Lesser General Public License as published by +// the Free Software Foundation, either version 3 of the License, or +// (at your option) any later version. +// +// The go-ethereum library is distributed in the hope that it will be useful, +// but WITHOUT ANY WARRANTY; without even the implied warranty of +// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the +// GNU Lesser General Public License for more details. +// +// You should have received a copy of the GNU Lesser General Public License +// along with the go-ethereum library. If not, see <http://www.gnu.org/licenses/>. + +// +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 +} |