Closed
Description
Test case:
use num_traits::Num;
num_bigint::BigUint::from_str_radix("0+2", 10);
will panic instead of returning an Err:
stack backtrace:
...
10: 0x5629031d9e61 - <core::result::Result<T, E>>::unwrap_err::ha2ff9ebcf57c662c
at /checkout/src/libcore/result.rs:789
11: 0x5629031e38db - <num_bigint::biguint::BigUint as num_traits::Num>::from_str_radix::h2b33fa225070b5b3
at .../num-bigint-0.1.36/src/biguint.rs:245
Cause is that num
tries to create and unwrap_err
a ParseIntError from std
by calling parse
on s[i..]
where i
is the index of the +
. This will not error out if there are only valid digits after the +
.
@Manishearth for the trophy case - found by using cargo-fuzz on serde-pickle