diff options
| author | joboet <jonasboettiger@icloud.com> | 2023-03-29 10:52:48 +0200 |
|---|---|---|
| committer | joboet <jonasboettiger@icloud.com> | 2023-03-29 10:52:48 +0200 |
| commit | f6bde0352b52eb3b31c78b7abd70c1be396ccb0f (patch) | |
| tree | 2bd9c38d27c9a57d9228a835a5c281a7854e8887 | |
| parent | fdbf109b635d8928b7b47570f2a8f00ec9d39d94 (diff) | |
| download | rust-f6bde0352b52eb3b31c78b7abd70c1be396ccb0f.tar.gz rust-f6bde0352b52eb3b31c78b7abd70c1be396ccb0f.zip | |
std: use `cvt` to handle errors from `read_entropy` on Hermit
| -rw-r--r-- | library/std/src/sys/hermit/mod.rs | 12 |
1 files 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(); |
