Skip to content

Commit 676c4e8

Browse files
committed
core: sanitize more TxPoolConfig fields (ethereum#17210)
1 parent 6b87c07 commit 676c4e8

File tree

2 files changed

+22
-2
lines changed

2 files changed

+22
-2
lines changed

core/tx_pool.go

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -192,6 +192,26 @@ func (config *TxPoolConfig) sanitize() TxPoolConfig {
192192
log.Warn("Sanitizing invalid txpool price bump", "provided", conf.PriceBump, "updated", DefaultTxPoolConfig.PriceBump)
193193
conf.PriceBump = DefaultTxPoolConfig.PriceBump
194194
}
195+
if conf.AccountSlots < 1 {
196+
log.Warn("Sanitizing invalid txpool account slots", "provided", conf.AccountSlots, "updated", DefaultTxPoolConfig.AccountSlots)
197+
conf.AccountSlots = DefaultTxPoolConfig.AccountSlots
198+
}
199+
if conf.GlobalSlots < 1 {
200+
log.Warn("Sanitizing invalid txpool global slots", "provided", conf.GlobalSlots, "updated", DefaultTxPoolConfig.GlobalSlots)
201+
conf.GlobalSlots = DefaultTxPoolConfig.GlobalSlots
202+
}
203+
if conf.AccountQueue < 1 {
204+
log.Warn("Sanitizing invalid txpool account queue", "provided", conf.AccountQueue, "updated", DefaultTxPoolConfig.AccountQueue)
205+
conf.AccountQueue = DefaultTxPoolConfig.AccountQueue
206+
}
207+
if conf.GlobalQueue < 1 {
208+
log.Warn("Sanitizing invalid txpool global queue", "provided", conf.GlobalQueue, "updated", DefaultTxPoolConfig.GlobalQueue)
209+
conf.GlobalQueue = DefaultTxPoolConfig.GlobalQueue
210+
}
211+
if conf.Lifetime < 1 {
212+
log.Warn("Sanitizing invalid txpool lifetime", "provided", conf.Lifetime, "updated", DefaultTxPoolConfig.Lifetime)
213+
conf.Lifetime = DefaultTxPoolConfig.Lifetime
214+
}
195215
return conf
196216
}
197217

core/tx_pool_test.go

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1129,9 +1129,8 @@ func TestTransactionPendingMinimumAllowance(t *testing.T) {
11291129
blockchain := &testBlockChain{statedb, 1000000, new(event.Feed)}
11301130

11311131
config := testTxPoolConfig
1132-
config.AccountSlots = 10
1133-
config.GlobalSlots = 0
11341132
config.AccountSlots = 5
1133+
config.GlobalSlots = 1
11351134
pool := NewTxPool(config, params.TestChainConfig, blockchain)
11361135
defer pool.Stop()
11371136

@@ -1473,6 +1472,7 @@ func TestTransactionPoolStableUnderpricing(t *testing.T) {
14731472
config := testTxPoolConfig
14741473
config.GlobalSlots = common.LimitThresholdNonceInQueue
14751474
config.GlobalQueue = 0
1475+
config.AccountSlots = config.GlobalSlots - 1
14761476

14771477
pool := NewTxPool(config, params.TestChainConfig, blockchain)
14781478
defer pool.Stop()

0 commit comments

Comments
 (0)