Skip to content

plugins/libplugin-pay: Add a check for NaN values#8357

Merged
rustyrussell merged 2 commits intoElementsProject:masterfrom
Chand-ra:route_bug
Sep 22, 2025
Merged

plugins/libplugin-pay: Add a check for NaN values#8357
rustyrussell merged 2 commits intoElementsProject:masterfrom
Chand-ra:route_bug

Conversation

@Chand-ra
Copy link

Due to the imprecision of htlc_max's type (fp16_t), capacity_bias() can return NaN in some cases. This leads to the following runtime error when compiled with UBSan:

runtime error: nan is outside the range of representable values of type 'unsigned long'

Add a check against it.

Checklist

Before submitting the PR, ensure the following tasks are completed. If an item is not applicable to your PR, please mark it as checked:

  • The changelog has been updated in the relevant commit(s) according to the guidelines.
  • Tests have been added or modified to reflect the changes.
  • Documentation has been reviewed and updated as needed.
  • Related issues have been listed and linked, including any that this PR closes.

CC: @morehouse

Chandra Pratap added 2 commits September 15, 2025 13:40
Add a test in `plugins/test/run-route-calc.c` that reproduces the
runtime error when the fix is not applied.
Changelog-Fixed: Due to the imprecision of `htlc_max`'s type (`fp16_t`),
`capacity_bias()` can return `NaN` in some cases. This leads to a
runtime error when compiled with UBSan. Add a check against it.
Copy link
Contributor

@rustyrussell rustyrussell left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ack 5e090f5

@rustyrussell rustyrussell merged commit a77aa50 into ElementsProject:master Sep 22, 2025
35 of 39 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants