core/txpool: use cmp.Compare instead of subtraction (#34918)

This fixes a theoretical overflow condition if an account has an impossibly high nonce.
This commit is contained in:
cui 2026-05-10 19:03:57 +08:00 committed by GitHub
parent bcb68d23b3
commit 7facf9c129
No known key found for this signature in database
GPG key ID: B5690EEEBB952194

View file

@ -18,6 +18,7 @@
package locals package locals
import ( import (
"cmp"
"slices" "slices"
"sync" "sync"
"time" "time"
@ -151,7 +152,7 @@ func (tracker *TxTracker) recheck(journalCheck bool) []*types.Transaction {
for _, list := range rejournal { for _, list := range rejournal {
// cmp(a, b) should return a negative number when a < b, // cmp(a, b) should return a negative number when a < b,
slices.SortFunc(list, func(a, b *types.Transaction) int { slices.SortFunc(list, func(a, b *types.Transaction) int {
return int(a.Nonce() - b.Nonce()) return cmp.Compare(a.Nonce(), b.Nonce())
}) })
} }
// Rejournal the tracker while holding the lock. No new transactions will // Rejournal the tracker while holding the lock. No new transactions will