Use checked math in frame-balances named_reserve (#7365)
This PR modifies `named_reserve()` in frame-balances to use checked math
instead of defensive saturating math.
The use of saturating math relies on the assumption that the sum of the
values will always fit in `u128::MAX`. However, there is nothing
preventing the implementing pallet from passing a larger value which
overflows. This can happen if the implementing pallet does not validate
user input and instead relies on `named_reserve()` to return an error
(this saves an additional read)
This is not a security concern, as the method will subsequently return
an error thanks to `<Self as ReservableCurrency<_>>::reserve(who,
value)?;`. However, the `defensive_saturating_add` will panic in
`--all-features`, creating false positive crashes in fuzzing operations.
---------
Co-authored-by:
cmd[bot] <41898282+github-actions[bot]@users.noreply.github.com>
parent
0dab441c
Pipeline
#513546
waiting for manual action
with stages
in
41 minutes and 31 seconds
Stage:
Stage:
Stage:
Stage:
Stage:
prdoc/pr_7365.prdoc
0 → 100644