fuzz: txorphan check wtxids using GenTxid::Wtxid not GenTxid::Txid

This commit is contained in:
Greg Sanders
2023-12-04 14:42:13 -05:00
parent 160d23677a
commit 38816ff64e

View File

@ -91,13 +91,13 @@ FUZZ_TARGET(txorphan, .init = initialize_orphanage)
{ {
CTransactionRef ref = orphanage.GetTxToReconsider(peer_id); CTransactionRef ref = orphanage.GetTxToReconsider(peer_id);
if (ref) { if (ref) {
bool have_tx = orphanage.HaveTx(GenTxid::Txid(ref->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(ref->GetHash())); bool have_tx = orphanage.HaveTx(GenTxid::Txid(ref->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(ref->GetWitnessHash()));
Assert(have_tx); Assert(have_tx);
} }
} }
}, },
[&] { [&] {
bool have_tx = orphanage.HaveTx(GenTxid::Txid(tx->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(tx->GetHash())); bool have_tx = orphanage.HaveTx(GenTxid::Txid(tx->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(tx->GetWitnessHash()));
// AddTx should return false if tx is too big or already have it // AddTx should return false if tx is too big or already have it
// tx weight is unknown, we only check when tx is already in orphanage // tx weight is unknown, we only check when tx is already in orphanage
{ {
@ -105,7 +105,7 @@ FUZZ_TARGET(txorphan, .init = initialize_orphanage)
// have_tx == true -> add_tx == false // have_tx == true -> add_tx == false
Assert(!have_tx || !add_tx); Assert(!have_tx || !add_tx);
} }
have_tx = orphanage.HaveTx(GenTxid::Txid(tx->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(tx->GetHash())); have_tx = orphanage.HaveTx(GenTxid::Txid(tx->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(tx->GetWitnessHash()));
{ {
bool add_tx = orphanage.AddTx(tx, peer_id); bool add_tx = orphanage.AddTx(tx, peer_id);
// if have_tx is still false, it must be too big // if have_tx is still false, it must be too big
@ -114,12 +114,12 @@ FUZZ_TARGET(txorphan, .init = initialize_orphanage)
} }
}, },
[&] { [&] {
bool have_tx = orphanage.HaveTx(GenTxid::Txid(tx->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(tx->GetHash())); bool have_tx = orphanage.HaveTx(GenTxid::Txid(tx->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(tx->GetWitnessHash()));
// EraseTx should return 0 if m_orphans doesn't have the tx // EraseTx should return 0 if m_orphans doesn't have the tx
{ {
Assert(have_tx == orphanage.EraseTx(tx->GetHash())); Assert(have_tx == orphanage.EraseTx(tx->GetHash()));
} }
have_tx = orphanage.HaveTx(GenTxid::Txid(tx->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(tx->GetHash())); have_tx = orphanage.HaveTx(GenTxid::Txid(tx->GetHash())) || orphanage.HaveTx(GenTxid::Wtxid(tx->GetWitnessHash()));
// have_tx should be false and EraseTx should fail // have_tx should be false and EraseTx should fail
{ {
Assert(!have_tx && !orphanage.EraseTx(tx->GetHash())); Assert(!have_tx && !orphanage.EraseTx(tx->GetHash()));