prysm-pulse/fuzz/proposer_slashing_fuzz.go

36 lines
1.0 KiB
Go
Raw Normal View History

libfuzz based tests (#5095) * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * use opt for fuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge branch 'go-1.14-libfuzz' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * use ubuntu as the default build image * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge branch 'master' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Move fuzz tests * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge branch 'go-1.14-libfuzz' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * making progress on p2p fuzz * Merge branch 'go-1.14-libfuzz' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * use a single stream repeatedly * use a single stream repeatedly * use many streams * fixes * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge branch 'master' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Merge branch 'master' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Add basic test for ssz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge branch 'master' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge branch 'master' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Use a custom go_library to add libfuzzer * delete old corpus, fix rpc_status_fuzz * move fuzz.bzl * minor fixes * Merge branch 'go-1.14-libfuzz' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * add c-shared library (doesnt work) * Merge branch 'go-1.14-libfuzz' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * fix build * fixes * Merge refs/heads/master into go-1.14-libfuzz * lint * more lint * Merge branch 'go-1.14-libfuzz' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * more lint * allow environment variable * Merge refs/heads/master into go-1.14-libfuzz * Add a fuzzit image with the beacon_states * Merge branch 'go-1.14-libfuzz' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * lint * readme * lint * fix lint again i think * gaz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * breakup deps * Merge branch 'go-1.14-libfuzz' of github.com:prysmaticlabs/prysm into go-1.14-libfuzz * don't panic on failure * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * panic if no beacon states to read * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * update rules_foreign_cc * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * remove c_shared target, manually tag tests * Add readme to fuzz package * delete a few comments * delete a few comments * lint * gaz * gaz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz * Merge refs/heads/master into go-1.14-libfuzz
2020-05-05 07:22:26 +00:00
// +build libfuzzer
package fuzz
import (
"context"
ethpb "github.com/prysmaticlabs/ethereumapis/eth/v1alpha1"
"github.com/prysmaticlabs/prysm/beacon-chain/core/blocks"
stateTrie "github.com/prysmaticlabs/prysm/beacon-chain/state"
prylabs_testing "github.com/prysmaticlabs/prysm/fuzz/testing"
"github.com/prysmaticlabs/prysm/shared/params"
)
// BeaconFuzzDeposit implements libfuzzer and beacon fuzz interface.
func BeaconFuzzProposerSlashing(b []byte) ([]byte, bool) {
params.UseMainnetConfig()
input := &InputProposerSlashingWrapper{}
if err := input.UnmarshalSSZ(b); err != nil {
return fail(err)
}
s, err := prylabs_testing.GetBeaconFuzzState(input.StateID)
if err != nil || s == nil {
return nil, false
}
st, err := stateTrie.InitializeFromProto(s)
if err != nil {
return fail(err)
}
post, err := blocks.ProcessProposerSlashings(context.Background(), st, &ethpb.BeaconBlockBody{ProposerSlashings: []*ethpb.ProposerSlashing{input.ProposerSlashing}})
if err != nil {
return fail(err)
}
return success(post)
}