core: check txn length when building a transaction set

This commit is contained in:
Jordan Krage 2018-07-15 09:29:10 -05:00 committed by GitHub
parent 2e0391ea84
commit aee88cf4e5
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23

View file

@ -331,12 +331,14 @@ func NewTransactionsByPriceAndNonce(signer Signer, txs map[common.Address]Transa
// Initialize a price based heap with the head transactions // Initialize a price based heap with the head transactions
heads := make(TxByPrice, 0, len(txs)) heads := make(TxByPrice, 0, len(txs))
for from, accTxs := range txs { for from, accTxs := range txs {
heads = append(heads, accTxs[0]) if len(accTxs) > 0 {
// Ensure the sender address is from the signer heads = append(heads, accTxs[0])
acc, _ := Sender(signer, accTxs[0]) // Ensure the sender address is from the signer
txs[acc] = accTxs[1:] acc, _ := Sender(signer, accTxs[0])
if from != acc { txs[acc] = accTxs[1:]
delete(txs, from) if from != acc {
delete(txs, from)
}
} }
} }
heap.Init(&heads) heap.Init(&heads)