]> Repositorios git - scryer-prolog.git/commitdiff
crypto_data_hkdf/4: do not crash for length > usize::max_value()
authorMarkus Triska <[email protected]>
Tue, 19 May 2020 15:31:36 +0000 (17:31 +0200)
committerMarkus Triska <[email protected]>
Tue, 19 May 2020 15:31:36 +0000 (17:31 +0200)
For now, we fail silently in such cases.

Noted by @notoria in #533. Many thanks!

src/prolog/machine/system_calls.rs

index 1fd341c0364eb397477e31e6fbd8c1dfa4f55adc..ad3973ac78851abce6627fa654c6d8116d6d0599 100644 (file)
@@ -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 =