diff --git a/src/prolog/machine/system_calls.rs b/src/prolog/machine/system_calls.rs index 17d456ed..c71fc5ba 100644 --- a/src/prolog/machine/system_calls.rs +++ b/src/prolog/machine/system_calls.rs @@ -5266,7 +5266,10 @@ impl MachineState { let salt = hkdf::Salt::new(digest_alg, &salt); let mut bytes : Vec = Vec::new(); bytes.resize(length, 0); - salt.extract(&data).expand(&[&info[..]], MyKey(length)).unwrap().fill(&mut bytes).unwrap(); + match salt.extract(&data).expand(&[&info[..]], MyKey(length)) { + Ok(r) => { r.fill(&mut bytes).unwrap(); } + _ => { self.fail = true; return Ok(()); } + } Addr::HeapCell(self.heap.to_list(bytes.iter().map(|b| HeapCellValue::Integer(Rc::new(Integer::from(*b)))))) };