Skip to content

Commit 19f08c8

Browse files
committed
all: handle err from func rlp.Encode, close XFN-127
1 parent 22edaac commit 19f08c8

File tree

9 files changed

+39
-17
lines changed

9 files changed

+39
-17
lines changed

consensus/XDPoS/engines/engine_v1/utils.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -83,7 +83,9 @@ func sigHash(header *types.Header) (hash common.Hash) {
8383
if header.BaseFee != nil {
8484
enc = append(enc, header.BaseFee)
8585
}
86-
rlp.Encode(hasher, enc)
86+
if err := rlp.Encode(hasher, enc); err != nil {
87+
panic("rlp.Encode fail: " + err.Error())
88+
}
8789
hasher.Sum(hash[:0])
8890
return hash
8991
}

consensus/XDPoS/engines/engine_v2/utils.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -41,7 +41,9 @@ func sigHash(header *types.Header) (hash common.Hash) {
4141
if header.BaseFee != nil {
4242
enc = append(enc, header.BaseFee)
4343
}
44-
rlp.Encode(hasher, enc)
44+
if err := rlp.Encode(hasher, enc); err != nil {
45+
panic("rlp.Encode fail: " + err.Error())
46+
}
4547
hasher.Sum(hash[:0])
4648
return hash
4749
}

consensus/clique/clique.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -168,7 +168,9 @@ func sigHash(header *types.Header) (hash common.Hash) {
168168
if header.BaseFee != nil {
169169
enc = append(enc, header.BaseFee)
170170
}
171-
rlp.Encode(hasher, enc)
171+
if err := rlp.Encode(hasher, enc); err != nil {
172+
panic("rlp.Encode fail: " + err.Error())
173+
}
172174
hasher.Sum(hash[:0])
173175
return hash
174176
}

core/rawdb/accessors_chain_test.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -97,7 +97,9 @@ func TestBodyStorage(t *testing.T) {
9797
body := &types.Body{Uncles: []*types.Header{{Extra: []byte("test header")}}}
9898

9999
hasher := sha3.NewLegacyKeccak256()
100-
rlp.Encode(hasher, body)
100+
if err := rlp.Encode(hasher, body); err != nil {
101+
t.Fatalf("rlp.Encode fail: %v", err)
102+
}
101103
hash := common.BytesToHash(hasher.Sum(nil))
102104

103105
if entry := ReadBody(db, hash, 0); entry != nil {

internal/ethapi/api.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -347,7 +347,9 @@ func (api *BlockChainAPI) GetTransactionAndReceiptProof(ctx context.Context, has
347347
tx_tr := deriveTrie(block.Transactions())
348348

349349
keybuf := new(bytes.Buffer)
350-
rlp.Encode(keybuf, uint(index))
350+
if err := rlp.Encode(keybuf, uint(index)); err != nil {
351+
return nil, err
352+
}
351353
var tx_proof proofPairList
352354
if err := tx_tr.Prove(keybuf.Bytes(), 0, &tx_proof); err != nil {
353355
return nil, err

internal/ethapi/trie_proof_test.go

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -53,7 +53,9 @@ func TestTransactionProof(t *testing.T) {
5353
for i := 0; i < transactions.Len(); i++ {
5454
var proof proofPairList
5555
keybuf := new(bytes.Buffer)
56-
rlp.Encode(keybuf, uint(i))
56+
if err := rlp.Encode(keybuf, uint(i)); err != nil {
57+
t.Fatalf("rlp.Encode fail: %v", err)
58+
}
5759
if err := tr.Prove(keybuf.Bytes(), 0, &proof); err != nil {
5860
t.Fatal("Prove err:", err)
5961
}
@@ -86,7 +88,9 @@ func TestReceiptProof(t *testing.T) {
8688
for i := 0; i < receipts.Len(); i++ {
8789
var proof proofPairList
8890
keybuf := new(bytes.Buffer)
89-
rlp.Encode(keybuf, uint(i))
91+
if err := rlp.Encode(keybuf, uint(i)); err != nil {
92+
t.Fatalf("rlp.Encode fail: %v", err)
93+
}
9094
if err := tr.Prove(keybuf.Bytes(), 0, &proof); err != nil {
9195
t.Fatal("Prove err:", err)
9296
}

p2p/enr/enr.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -244,7 +244,9 @@ func (r *Record) signAndEncode(privkey *ecdsa.PrivateKey) error {
244244

245245
// Sign the tail of the list.
246246
h := sha3.NewLegacyKeccak256()
247-
rlp.Encode(h, list[1:])
247+
if err := rlp.Encode(h, list[1:]); err != nil {
248+
return err
249+
}
248250
sig, err := crypto.Sign(h.Sum(nil), privkey)
249251
if err != nil {
250252
return err

tests/state_test_util.go

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -303,7 +303,9 @@ func (tx *stTransaction) toMessage(ps stPostState, number *big.Int, baseFee *big
303303

304304
func rlpHash(x interface{}) (h common.Hash) {
305305
hw := sha3.NewLegacyKeccak256()
306-
rlp.Encode(hw, x)
306+
if err := rlp.Encode(hw, x); err != nil {
307+
panic("can't encode: " + err.Error())
308+
}
307309
hw.Sum(h[:0])
308310
return h
309311
}

trie/node_test.go

Lines changed: 12 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -45,8 +45,9 @@ func TestDecodeNestedNode(t *testing.T) {
4545
fullNodeData[15] = data
4646

4747
buf := bytes.NewBuffer([]byte{})
48-
rlp.Encode(buf, fullNodeData)
49-
48+
if err := rlp.Encode(buf, fullNodeData); err != nil {
49+
t.Fatalf("rlp.Encode fail: %v", err)
50+
}
5051
if _, err := decodeNode([]byte("testdecode"), buf.Bytes()); err != nil {
5152
t.Fatalf("decode nested full Node err: %v", err)
5253
}
@@ -56,8 +57,9 @@ func TestDecodeFullNodeWrongSizeChild(t *testing.T) {
5657
fullNodeData := newTestFullNode([]byte("wrongsizechild"))
5758
fullNodeData[0] = []byte("00")
5859
buf := bytes.NewBuffer([]byte{})
59-
rlp.Encode(buf, fullNodeData)
60-
60+
if err := rlp.Encode(buf, fullNodeData); err != nil {
61+
t.Fatalf("rlp.Encode fail: %v", err)
62+
}
6163
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
6264
if _, ok := err.(*decodeError); !ok {
6365
t.Fatalf("decodeNode returned wrong err: %v", err)
@@ -75,8 +77,9 @@ func TestDecodeFullNodeWrongNestedFullNode(t *testing.T) {
7577
fullNodeData[15] = data
7678

7779
buf := bytes.NewBuffer([]byte{})
78-
rlp.Encode(buf, fullNodeData)
79-
80+
if err := rlp.Encode(buf, fullNodeData); err != nil {
81+
t.Fatalf("rlp.Encode fail: %v", err)
82+
}
8083
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
8184
if _, ok := err.(*decodeError); !ok {
8285
t.Fatalf("decodeNode returned wrong err: %v", err)
@@ -86,8 +89,9 @@ func TestDecodeFullNodeWrongNestedFullNode(t *testing.T) {
8689
func TestDecodeFullNode(t *testing.T) {
8790
fullNodeData := newTestFullNode([]byte("decodefullnode"))
8891
buf := bytes.NewBuffer([]byte{})
89-
rlp.Encode(buf, fullNodeData)
90-
92+
if err := rlp.Encode(buf, fullNodeData); err != nil {
93+
t.Fatalf("rlp.Encode fail: %v", err)
94+
}
9195
_, err := decodeNode([]byte("testdecode"), buf.Bytes())
9296
if err != nil {
9397
t.Fatalf("decode full Node err: %v", err)

0 commit comments

Comments
 (0)