Skip to content

Commit

Permalink
Merge bitcoin#29462: [fuzz] Avoid partial negative result
Browse files Browse the repository at this point in the history
9dae3b9 [fuzz] Avoid partial negative result (Murch)

Pull request description:

  May address the problem reported by maflcko in bitcoin#27877 (review).

  For some values, `MAX_MONEY - max_spendable - max_output_groups` could result in a partial negative value. By putting the addition of `group_pos.size()` first, all partial results in this line will be strictly positive.

  I opened this as a draft, since I was unable to reproduce the issue, so I’m waiting for confirmation whether this in fact mitigates the problem.

ACKs for top commit:
  maflcko:
    ACK 9dae3b9
  sipa:
    utACK 9dae3b9
  achow101:
    ACK 9dae3b9
  brunoerg:
    crACK 9dae3b9

Tree-SHA512: 744b4706268d8dfd77538b99492ecf3cf77d229095f9bcd416a412131336830e2f134f2b2846c79abd3d193426f97c1f71eeaf68b16ab00e76318d57ee3673c7
  • Loading branch information
achow101 committed Feb 22, 2024
2 parents 88b1229 + 9dae3b9 commit 1ac627c
Showing 1 changed file with 1 addition and 1 deletion.
2 changes: 1 addition & 1 deletion src/wallet/test/fuzz/coinselection.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -158,7 +158,7 @@ FUZZ_TARGET(coin_grinder_is_optimal)
// Only make UTXOs with positive effective value
const CAmount input_fee = coin_params.m_effective_feerate.GetFee(n_input_bytes);
// Ensure that each UTXO has at least an effective value of 1 sat
const CAmount eff_value{fuzzed_data_provider.ConsumeIntegralInRange<CAmount>(1, MAX_MONEY - max_spendable - max_output_groups + group_pos.size())};
const CAmount eff_value{fuzzed_data_provider.ConsumeIntegralInRange<CAmount>(1, MAX_MONEY + group_pos.size() - max_spendable - max_output_groups)};
const CAmount amount{eff_value + input_fee};
std::vector<COutput> temp_utxo_pool;

Expand Down

0 comments on commit 1ac627c

Please sign in to comment.