Re: [PATCH v4] rust: num: restrict bool conversion to unsigned Bounded
From: Alexandre Courbot
Date: Sun Aug 23 2026 - 23:17:11 EST
On Sat Aug 22, 2026 at 5:44 PM JST, Younes Akhouayri via B4 Relay wrote:
> From: Younes Akhouayri <git@xxxxxxxxx>
>
> From<bool> turns true into 1. A signed Bounded with N = 1 can hold
> only -1 and 0. The current implementation can therefore create a value
> that breaks Bounded's invariant. Deref relies on that invariant and
> calls unreachable_unchecked() when it is broken, so safe Rust can reach
> undefined behavior.
>
> The other primitive conversions require the source and destination to
> have the same signedness. Treat bool as an unsigned one-bit value and
> allow conversions between bool and Bounded only when the backing integer
> type is unsigned.
>
> Fixes: 01e345e82ec3 ("rust: num: add Bounded integer wrapping type")
> Closes: https://lore.kernel.org/rust-for-linux/OzuVxu0--J-9@xxxxxxxxx/
> Cc: stable@xxxxxxxxxxxxxxx
> Suggested-by: Alexandre Courbot <acourbot@xxxxxxxxxx>
> Assisted-by: Codex:gpt-5.6-sol
> Signed-off-by: Younes Akhouayri <git@xxxxxxxxx>
Thanks for this fix!
Reviewed-by: Alexandre Courbot <acourbot@xxxxxxxxxx>