mirror of
https://github.com/ethereum/go-ethereum.git
synced 2026-07-18 02:40:45 +00:00
all: handle err from func rlp.Encode, close XFN-127 (#1692)
This commit is contained in:
parent
426d4a7a9f
commit
58c066f053
9 changed files with 39 additions and 17 deletions
|
|
@ -83,7 +83,9 @@ func sigHash(header *types.Header) (hash common.Hash) {
|
||||||
if header.BaseFee != nil {
|
if header.BaseFee != nil {
|
||||||
enc = append(enc, header.BaseFee)
|
enc = append(enc, header.BaseFee)
|
||||||
}
|
}
|
||||||
rlp.Encode(hasher, enc)
|
if err := rlp.Encode(hasher, enc); err != nil {
|
||||||
|
panic("rlp.Encode fail: " + err.Error())
|
||||||
|
}
|
||||||
hasher.Sum(hash[:0])
|
hasher.Sum(hash[:0])
|
||||||
return hash
|
return hash
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,9 @@ func sigHash(header *types.Header) (hash common.Hash) {
|
||||||
if header.BaseFee != nil {
|
if header.BaseFee != nil {
|
||||||
enc = append(enc, header.BaseFee)
|
enc = append(enc, header.BaseFee)
|
||||||
}
|
}
|
||||||
rlp.Encode(hasher, enc)
|
if err := rlp.Encode(hasher, enc); err != nil {
|
||||||
|
panic("rlp.Encode fail: " + err.Error())
|
||||||
|
}
|
||||||
hasher.Sum(hash[:0])
|
hasher.Sum(hash[:0])
|
||||||
return hash
|
return hash
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -168,7 +168,9 @@ func sigHash(header *types.Header) (hash common.Hash) {
|
||||||
if header.BaseFee != nil {
|
if header.BaseFee != nil {
|
||||||
enc = append(enc, header.BaseFee)
|
enc = append(enc, header.BaseFee)
|
||||||
}
|
}
|
||||||
rlp.Encode(hasher, enc)
|
if err := rlp.Encode(hasher, enc); err != nil {
|
||||||
|
panic("rlp.Encode fail: " + err.Error())
|
||||||
|
}
|
||||||
hasher.Sum(hash[:0])
|
hasher.Sum(hash[:0])
|
||||||
return hash
|
return hash
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -97,7 +97,9 @@ func TestBodyStorage(t *testing.T) {
|
||||||
body := &types.Body{Uncles: []*types.Header{{Extra: []byte("test header")}}}
|
body := &types.Body{Uncles: []*types.Header{{Extra: []byte("test header")}}}
|
||||||
|
|
||||||
hasher := sha3.NewLegacyKeccak256()
|
hasher := sha3.NewLegacyKeccak256()
|
||||||
rlp.Encode(hasher, body)
|
if err := rlp.Encode(hasher, body); err != nil {
|
||||||
|
t.Fatalf("rlp.Encode fail: %v", err)
|
||||||
|
}
|
||||||
hash := common.BytesToHash(hasher.Sum(nil))
|
hash := common.BytesToHash(hasher.Sum(nil))
|
||||||
|
|
||||||
if entry := ReadBody(db, hash, 0); entry != nil {
|
if entry := ReadBody(db, hash, 0); entry != nil {
|
||||||
|
|
|
||||||
|
|
@ -347,7 +347,9 @@ func (api *BlockChainAPI) GetTransactionAndReceiptProof(ctx context.Context, has
|
||||||
tx_tr := deriveTrie(block.Transactions())
|
tx_tr := deriveTrie(block.Transactions())
|
||||||
|
|
||||||
keybuf := new(bytes.Buffer)
|
keybuf := new(bytes.Buffer)
|
||||||
rlp.Encode(keybuf, uint(index))
|
if err := rlp.Encode(keybuf, uint(index)); err != nil {
|
||||||
|
return nil, err
|
||||||
|
}
|
||||||
var tx_proof proofPairList
|
var tx_proof proofPairList
|
||||||
if err := tx_tr.Prove(keybuf.Bytes(), 0, &tx_proof); err != nil {
|
if err := tx_tr.Prove(keybuf.Bytes(), 0, &tx_proof); err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
|
|
|
||||||
|
|
@ -53,7 +53,9 @@ func TestTransactionProof(t *testing.T) {
|
||||||
for i := 0; i < transactions.Len(); i++ {
|
for i := 0; i < transactions.Len(); i++ {
|
||||||
var proof proofPairList
|
var proof proofPairList
|
||||||
keybuf := new(bytes.Buffer)
|
keybuf := new(bytes.Buffer)
|
||||||
rlp.Encode(keybuf, uint(i))
|
if err := rlp.Encode(keybuf, uint(i)); err != nil {
|
||||||
|
t.Fatalf("rlp.Encode fail: %v", err)
|
||||||
|
}
|
||||||
if err := tr.Prove(keybuf.Bytes(), 0, &proof); err != nil {
|
if err := tr.Prove(keybuf.Bytes(), 0, &proof); err != nil {
|
||||||
t.Fatal("Prove err:", err)
|
t.Fatal("Prove err:", err)
|
||||||
}
|
}
|
||||||
|
|
@ -86,7 +88,9 @@ func TestReceiptProof(t *testing.T) {
|
||||||
for i := 0; i < receipts.Len(); i++ {
|
for i := 0; i < receipts.Len(); i++ {
|
||||||
var proof proofPairList
|
var proof proofPairList
|
||||||
keybuf := new(bytes.Buffer)
|
keybuf := new(bytes.Buffer)
|
||||||
rlp.Encode(keybuf, uint(i))
|
if err := rlp.Encode(keybuf, uint(i)); err != nil {
|
||||||
|
t.Fatalf("rlp.Encode fail: %v", err)
|
||||||
|
}
|
||||||
if err := tr.Prove(keybuf.Bytes(), 0, &proof); err != nil {
|
if err := tr.Prove(keybuf.Bytes(), 0, &proof); err != nil {
|
||||||
t.Fatal("Prove err:", err)
|
t.Fatal("Prove err:", err)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -244,7 +244,9 @@ func (r *Record) signAndEncode(privkey *ecdsa.PrivateKey) error {
|
||||||
|
|
||||||
// Sign the tail of the list.
|
// Sign the tail of the list.
|
||||||
h := sha3.NewLegacyKeccak256()
|
h := sha3.NewLegacyKeccak256()
|
||||||
rlp.Encode(h, list[1:])
|
if err := rlp.Encode(h, list[1:]); err != nil {
|
||||||
|
return err
|
||||||
|
}
|
||||||
sig, err := crypto.Sign(h.Sum(nil), privkey)
|
sig, err := crypto.Sign(h.Sum(nil), privkey)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return err
|
return err
|
||||||
|
|
|
||||||
|
|
@ -303,7 +303,9 @@ func (tx *stTransaction) toMessage(ps stPostState, number *big.Int, baseFee *big
|
||||||
|
|
||||||
func rlpHash(x interface{}) (h common.Hash) {
|
func rlpHash(x interface{}) (h common.Hash) {
|
||||||
hw := sha3.NewLegacyKeccak256()
|
hw := sha3.NewLegacyKeccak256()
|
||||||
rlp.Encode(hw, x)
|
if err := rlp.Encode(hw, x); err != nil {
|
||||||
|
panic("can't encode: " + err.Error())
|
||||||
|
}
|
||||||
hw.Sum(h[:0])
|
hw.Sum(h[:0])
|
||||||
return h
|
return h
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -45,8 +45,9 @@ func TestDecodeNestedNode(t *testing.T) {
|
||||||
fullNodeData[15] = data
|
fullNodeData[15] = data
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
rlp.Encode(buf, fullNodeData)
|
if err := rlp.Encode(buf, fullNodeData); err != nil {
|
||||||
|
t.Fatalf("rlp.Encode fail: %v", err)
|
||||||
|
}
|
||||||
if _, err := decodeNode([]byte("testdecode"), buf.Bytes()); err != nil {
|
if _, err := decodeNode([]byte("testdecode"), buf.Bytes()); err != nil {
|
||||||
t.Fatalf("decode nested full Node err: %v", err)
|
t.Fatalf("decode nested full Node err: %v", err)
|
||||||
}
|
}
|
||||||
|
|
@ -56,8 +57,9 @@ func TestDecodeFullNodeWrongSizeChild(t *testing.T) {
|
||||||
fullNodeData := newTestFullNode([]byte("wrongsizechild"))
|
fullNodeData := newTestFullNode([]byte("wrongsizechild"))
|
||||||
fullNodeData[0] = []byte("00")
|
fullNodeData[0] = []byte("00")
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
rlp.Encode(buf, fullNodeData)
|
if err := rlp.Encode(buf, fullNodeData); err != nil {
|
||||||
|
t.Fatalf("rlp.Encode fail: %v", err)
|
||||||
|
}
|
||||||
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
|
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
|
||||||
if _, ok := err.(*decodeError); !ok {
|
if _, ok := err.(*decodeError); !ok {
|
||||||
t.Fatalf("decodeNode returned wrong err: %v", err)
|
t.Fatalf("decodeNode returned wrong err: %v", err)
|
||||||
|
|
@ -75,8 +77,9 @@ func TestDecodeFullNodeWrongNestedFullNode(t *testing.T) {
|
||||||
fullNodeData[15] = data
|
fullNodeData[15] = data
|
||||||
|
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
rlp.Encode(buf, fullNodeData)
|
if err := rlp.Encode(buf, fullNodeData); err != nil {
|
||||||
|
t.Fatalf("rlp.Encode fail: %v", err)
|
||||||
|
}
|
||||||
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
|
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
|
||||||
if _, ok := err.(*decodeError); !ok {
|
if _, ok := err.(*decodeError); !ok {
|
||||||
t.Fatalf("decodeNode returned wrong err: %v", err)
|
t.Fatalf("decodeNode returned wrong err: %v", err)
|
||||||
|
|
@ -86,8 +89,9 @@ func TestDecodeFullNodeWrongNestedFullNode(t *testing.T) {
|
||||||
func TestDecodeFullNode(t *testing.T) {
|
func TestDecodeFullNode(t *testing.T) {
|
||||||
fullNodeData := newTestFullNode([]byte("decodefullnode"))
|
fullNodeData := newTestFullNode([]byte("decodefullnode"))
|
||||||
buf := bytes.NewBuffer([]byte{})
|
buf := bytes.NewBuffer([]byte{})
|
||||||
rlp.Encode(buf, fullNodeData)
|
if err := rlp.Encode(buf, fullNodeData); err != nil {
|
||||||
|
t.Fatalf("rlp.Encode fail: %v", err)
|
||||||
|
}
|
||||||
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
|
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
|
||||||
if err != nil {
|
if err != nil {
|
||||||
t.Fatalf("decode full Node err: %v", err)
|
t.Fatalf("decode full Node err: %v", err)
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue