From: Markus Triska Date: Tue, 19 May 2020 15:31:36 +0000 (+0200) Subject: crypto_data_hkdf/4: do not crash for length > usize::max_value() X-Git-Tag: v0.8.123~11^2~1 X-Git-Url: https://git.sagredo.dev/?a=commitdiff_plain;h=d19d8ea77067319fbc1cbfb4238549107ef9585e;p=scryer-prolog.git crypto_data_hkdf/4: do not crash for length > usize::max_value() For now, we fail silently in such cases. Noted by @notoria in #533. Many thanks! --- diff --git a/src/prolog/machine/system_calls.rs b/src/prolog/machine/system_calls.rs index 1fd341c0..ad3973ac 100644 --- a/src/prolog/machine/system_calls.rs +++ b/src/prolog/machine/system_calls.rs @@ -5285,11 +5285,12 @@ impl MachineState { usize::try_from(n).unwrap() } Ok(Number::Integer(n)) => { - n.to_usize().unwrap() - } - _ => { - unreachable!() + match n.to_usize() { + Some(u) => { u } + _ => { self.fail = true; return Ok(()); } + } } + _ => { unreachable!() } }; let ints_list =