rpc: /broadcast_evidence nil evidence check (#5109)

This commit is contained in:
Callum Waters
2020-07-10 17:33:14 +02:00
committed by GitHub
parent de8cb8c16d
commit c552a5b21e
2 changed files with 12 additions and 0 deletions

View File

@@ -222,3 +222,10 @@ func TestBroadcastEvidence_ConflictingHeadersEvidence(t *testing.T) {
assert.Equal(t, ev.Hash(), result.Hash, "expected result hash to match evidence hash")
}
}
func TestBroadcastEmptyEvidence(t *testing.T) {
for _, c := range GetClients() {
_, err := c.BroadcastEvidence(nil)
assert.Error(t, err)
}
}

View File

@@ -1,6 +1,7 @@
package core
import (
"errors"
"fmt"
ctypes "github.com/tendermint/tendermint/rpc/core/types"
@@ -11,6 +12,10 @@ import (
// BroadcastEvidence broadcasts evidence of the misbehavior.
// More: https://docs.tendermint.com/master/rpc/#/Info/broadcast_evidence
func BroadcastEvidence(ctx *rpctypes.Context, ev types.Evidence) (*ctypes.ResultBroadcastEvidence, error) {
if ev == nil {
return nil, errors.New("no evidence was provided")
}
if err := ev.ValidateBasic(); err != nil {
return nil, fmt.Errorf("evidence.ValidateBasic failed: %w", err)
}