From b298bf336757738e8c313d214e1dcc632475f9f7 Mon Sep 17 00:00:00 2001 From: rabite0 Date: Mon, 2 Mar 2020 23:13:00 +0100 Subject: use safer cast instead of transmute --- src/files.rs | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) (limited to 'src') diff --git a/src/files.rs b/src/files.rs index f2c6210..de00a28 100644 --- a/src/files.rs +++ b/src/files.rs @@ -1173,11 +1173,12 @@ impl File { let name: &OsStr = unsafe { use std::ffi::CStr; // &CStr -> &[u8] - let s: &[u8] = std::mem::transmute::<&CStr, &[u8]>(direntry.file_name()); + let s = direntry.file_name() as *const CStr; + let s: &[u8] = s.cast::<&[u8]>().as_ref().unwrap(); // &Cstr -> &OsStr, minus the NULL byte let len = s.len(); - let s = &s[..len-1]; - std::mem::transmute::<&[u8], &OsStr>(s) + let s = &s[..len-1] as *const [u8]; + s.cast::<&OsStr>().as_ref().unwrap() }; // Avoid reallocation on push -- cgit v1.2.3