From 77e183955b73951047db10ac37d2747b428863c9 Mon Sep 17 00:00:00 2001 From: Terts Diepraam Date: Wed, 31 May 2023 20:09:26 +0200 Subject: [PATCH] head: use OsStringExt::from_vec instead of std::from_utf8_unchecked This no longer triggers the `invalid_from_utf8_unchecked` lint. It is also a bit cleaner and no longer requires `unsafe` because OsString is not guaranteed to be valid UTF-8. --- src/uu/head/src/head.rs | 8 +++----- 1 file changed, 3 insertions(+), 5 deletions(-) diff --git a/src/uu/head/src/head.rs b/src/uu/head/src/head.rs index 2ccf20904..a336c91d4 100644 --- a/src/uu/head/src/head.rs +++ b/src/uu/head/src/head.rs @@ -622,12 +622,10 @@ mod tests { #[test] #[cfg(target_os = "linux")] fn test_arg_iterate_bad_encoding() { - #[allow(clippy::invalid_utf8_in_unchecked)] - let invalid = unsafe { std::str::from_utf8_unchecked(b"\x80\x81") }; + use std::os::unix::ffi::OsStringExt; + let invalid = OsString::from_vec(vec![b'\x80', b'\x81']); // this arises from a conversion from OsString to &str - assert!( - arg_iterate(vec![OsString::from("head"), OsString::from(invalid)].into_iter()).is_err() - ); + assert!(arg_iterate(vec![OsString::from("head"), invalid].into_iter()).is_err()); } #[test] fn read_early_exit() {