From f6bde0352b52eb3b31c78b7abd70c1be396ccb0f Mon Sep 17 00:00:00 2001 From: joboet Date: Wed, 29 Mar 2023 10:52:48 +0200 Subject: [PATCH] std: use `cvt` to handle errors from `read_entropy` on Hermit --- library/std/src/sys/hermit/mod.rs | 12 +++--------- 1 file changed, 3 insertions(+), 9 deletions(-) diff --git a/library/std/src/sys/hermit/mod.rs b/library/std/src/sys/hermit/mod.rs index d0e09890b8b..111150b06e1 100644 --- a/library/std/src/sys/hermit/mod.rs +++ b/library/std/src/sys/hermit/mod.rs @@ -80,15 +80,9 @@ pub fn hashmap_random_keys() -> (u64, u64) { let mut buf = [0; 16]; let mut slice = &mut buf[..]; while !slice.is_empty() { - let res = unsafe { abi::read_entropy(slice.as_mut_ptr(), slice.len(), 0) }; - if res < 0 { - panic!( - "random key generation failed: {}", - crate::io::Error::from_raw_os_error(-res as i32) - ); - } else { - slice = &mut slice[res as usize..]; - } + let res = cvt(unsafe { abi::read_entropy(slice.as_mut_ptr(), slice.len(), 0) }) + .expect("failed to generate random hashmap keys"); + slice = &mut slice[res as usize..]; } let key1 = buf[..8].try_into().unwrap();