Re: [PATCH v2] rust: num: bounded: mark __new as unsafe
From: Alexandre Courbot
Date: Wed Dec 03 2025 - 07:29:42 EST
On Tue Dec 2, 2025 at 12:25 PM JST, Hsiu Che Yu wrote:
> The `Bounded::__new()` constructor relies on the caller to ensure the
> value can be represented within N bits. Failing to uphold this
> requirement breaks the type invariant. Mark it as unsafe and document
> this requirement in a Safety section to make the contract explicit.
>
> Update all call sites to use unsafe blocks and change their comments
> from `INVARIANT:` to `SAFETY:`, as they are now justifying unsafe
> operations rather than establishing type invariants.
>
> Fixes: 01e345e82ec3a ("rust: num: add Bounded integer wrapping type")
> Reported-by: Miguel Ojeda <ojeda@xxxxxxxxxx>
Wasn't it Alice who said that `__new` should be unsafe?
Although Miguel did create the bug. In any case, maybe add a `Link:` tag
to this:
https://lore.kernel.org/all/aS1qC_ol2XEpZ44b@xxxxxxxxxx/
> Closes: https://github.com/Rust-for-Linux/linux/issues/1211
>
> Signed-off-by: Hsiu Che Yu <yu.whisper.personal@xxxxxxxxx>
The empty line is not needed.
With this,
Acked-by: Alexandre Courbot <acourbot@xxxxxxxxxx>