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
heads := make(TxByPrice, 0, len(txs))
for from, accTxs := range txs {
heads = append(heads, accTxs[0])
// Ensure the sender address is from the signer
acc, _ := Sender(signer, accTxs[0])
txs[acc] = accTxs[1:]
if from != acc {
delete(txs, from)
if len(accTxs) > 0 {
heads = append(heads, accTxs[0])
// Ensure the sender address is from the signer
acc, _ := Sender(signer, accTxs[0])
txs[acc] = accTxs[1:]
if from != acc {
delete(txs, from)
}
}
}
heap.Init(&heads)