feefrac test: avoid integer overflow (bugfix) #32240

pull sipa wants to merge 1 commits into bitcoin:master from sipa:202504_feefrac_fuzz_fix changing 1 files +3 −3
  1. sipa commented at 7:20 pm on April 8, 2025: member

    The feefrac_mul_div fuzz test fails after #30535 with the following (base64) input: Nb6Fc/97AACAAAD/ewAAgAAAAIAAAACAAAAAoA== (see https://cirrus-ci.com/task/5240029192126464?logs=ci#L3353).

    This is caused by an internal multiplication inside CFeeRate that just exceeds the limit of the int64_t type. Fix that by tightening the bounds slightly further.

  2. feefrac test: avoid integer overflow (bugfix) a2bc330da8
  3. DrahtBot commented at 7:21 pm on April 8, 2025: contributor

    The following sections might be updated with supplementary metadata relevant to reviewers and maintainers.

    Code Coverage & Benchmarks

    For details see: https://corecheck.dev/bitcoin/bitcoin/pulls/32240.

    Reviews

    See the guideline for information on the review process.

    Type Reviewers
    ACK instagibbs, sr-gi, glozow

    If your review is incorrectly listed, please react with 👎 to this comment and the bot will ignore it on the next update.

  4. sipa commented at 7:21 pm on April 8, 2025: member
    cc @sr-gi
  5. sipa requested review from Copilot on Apr 8, 2025
  6. Copilot commented at 8:02 pm on April 8, 2025: none

    Copilot reviewed 1 out of 1 changed files in this pull request and generated no comments.

    src/test/fuzz/feefrac.cpp:223

    • The change from non-strict to strict inequalities correctly prevents borderline overflow conditions. Please verify that these adjustments do not inadvertently exclude valid cases that were intended to be processed.
    0if (mul64 < std::numeric_limits<int64_t>::max() / 1000 &&
    
  7. sipa commented at 8:02 pm on April 8, 2025: member
    Thanks, Copilot.
  8. laanwj added the label Tests on Apr 9, 2025
  9. instagibbs approved
  10. instagibbs commented at 3:14 pm on April 9, 2025: member

    ACK a2bc330da86b604069308f5237b77cfa77ed2b43

    Can confirm it was allowing one-too-large values for the computed CAmount, and that it fails on master.

  11. sr-gi commented at 3:21 pm on April 9, 2025: member

    utACK a2bc330da86b604069308f5237b77cfa77ed2b43

    Trying to reproduce on my local setup, which is proving challenging (macOS).

    I’ll report later if I’m able to trigger it

  12. glozow commented at 6:26 pm on April 9, 2025: member
    ACK a2bc330da86b604069308f5237b77cfa77ed2b43, was able to reproduce + verify this fix
  13. glozow merged this on Apr 9, 2025
  14. glozow closed this on Apr 9, 2025

  15. sr-gi commented at 2:04 pm on April 10, 2025: member
    post-merge ACK, was able to reproduce locally and verify it doesn’t crash anymore after the patch

github-metadata-mirror

This is a metadata mirror of the GitHub repository bitcoin/bitcoin. This site is not affiliated with GitHub. Content is generated from a GitHub metadata backup.
generated: 2025-04-16 15:12 UTC

This site is hosted by @0xB10C
More mirrored repositories can be found on mirror.b10c.me