Skip to content

Commit d3c8e7d

Browse files
committed
Ensure that we don't add duplicate transactions in rbf fuzz tests
1 parent d7dc9fd commit d3c8e7d

File tree

1 file changed

+10
-3
lines changed

1 file changed

+10
-3
lines changed

src/test/fuzz/rbf.cpp

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -73,12 +73,16 @@ FUZZ_TARGET(rbf, .init = initialize_rbf)
7373
mtx->vin[0].prevout = COutPoint{another_tx.GetHash(), 0};
7474
}
7575
LOCK2(cs_main, pool.cs);
76-
AddToMempool(pool, ConsumeTxMemPoolEntry(fuzzed_data_provider, another_tx));
76+
if (!pool.GetIter(another_tx.GetHash())) {
77+
AddToMempool(pool, ConsumeTxMemPoolEntry(fuzzed_data_provider, another_tx));
78+
}
7779
}
7880
const CTransaction tx{*mtx};
7981
if (fuzzed_data_provider.ConsumeBool()) {
8082
LOCK2(cs_main, pool.cs);
81-
AddToMempool(pool, ConsumeTxMemPoolEntry(fuzzed_data_provider, tx));
83+
if (!pool.GetIter(tx.GetHash())) {
84+
AddToMempool(pool, ConsumeTxMemPoolEntry(fuzzed_data_provider, tx));
85+
}
8286
}
8387
{
8488
LOCK(pool.cs);
@@ -137,6 +141,7 @@ FUZZ_TARGET(package_rbf, .init = initialize_package_rbf)
137141
mempool_txs.pop_back();
138142
break;
139143
}
144+
assert(!pool.GetIter(parent_entry.GetTx().GetHash()));
140145
AddToMempool(pool, parent_entry);
141146
if (fuzzed_data_provider.ConsumeBool()) {
142147
child.vin[0].prevout = COutPoint{mempool_txs.back().GetHash(), 0};
@@ -149,7 +154,9 @@ FUZZ_TARGET(package_rbf, .init = initialize_package_rbf)
149154
mempool_txs.pop_back();
150155
break;
151156
}
152-
AddToMempool(pool, child_entry);
157+
if (!pool.GetIter(child_entry.GetTx().GetHash())) {
158+
AddToMempool(pool, child_entry);
159+
}
153160

154161
if (fuzzed_data_provider.ConsumeBool()) {
155162
pool.PrioritiseTransaction(mempool_txs.back().GetHash().ToUint256(), fuzzed_data_provider.ConsumeIntegralInRange<int32_t>(-100000, 100000));

0 commit comments

Comments
 (0)