mirror of
https://github.com/tendermint/tendermint.git
synced 2026-09-04 07:07:13 +00:00
test/fuzz: add test to reproduce found fuzz errors
This commit is contained in:
@@ -1,4 +1,4 @@
|
||||
package handler
|
||||
package server
|
||||
|
||||
import (
|
||||
"bytes"
|
||||
@@ -39,11 +39,29 @@ func Fuzz(data []byte) int {
|
||||
if err := res.Body.Close(); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
if len(blob) > 0 {
|
||||
recv := new(types.RPCResponse)
|
||||
if err := json.Unmarshal(blob, recv); err != nil {
|
||||
if len(blob) == 0 {
|
||||
return 1
|
||||
}
|
||||
|
||||
if inputJSONIsSlice(data) {
|
||||
recv := []types.RPCResponse{}
|
||||
if err := json.Unmarshal(blob, &recv); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return 1
|
||||
}
|
||||
recv := &types.RPCResponse{}
|
||||
if err := json.Unmarshal(blob, recv); err != nil {
|
||||
panic(err)
|
||||
}
|
||||
return 1
|
||||
}
|
||||
|
||||
func inputJSONIsSlice(input []byte) bool {
|
||||
slice := []interface{}{}
|
||||
err := json.Unmarshal(input, &slice)
|
||||
if err != nil {
|
||||
return false
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user