From 028061ca0f1f28b460aa8426385e6a9f4224b69a Mon Sep 17 00:00:00 2001 From: auronandace Date: Fri, 6 Feb 2026 17:17:07 +0000 Subject: [PATCH] add clippy lint ptr_as_ptr --- Cargo.toml | 2 ++ src/ld_so/dso.rs | 10 +++++----- src/ld_so/tcb.rs | 6 +++--- 3 files changed, 10 insertions(+), 8 deletions(-) diff --git a/Cargo.toml b/Cargo.toml index f9bb596025..64c4a9c4a5 100644 --- a/Cargo.toml +++ b/Cargo.toml @@ -20,9 +20,11 @@ members = [ exclude = ["tests", "dlmalloc-rs"] [workspace.lints.clippy] +ptr_as_ptr = "warn" ptr_cast_constness = "warn" [lints.clippy] +ptr_as_ptr = "warn" ptr_cast_constness = "warn" [build-dependencies] diff --git a/src/ld_so/dso.rs b/src/ld_so/dso.rs index c5fc288a8f..1bb346c0bb 100644 --- a/src/ld_so/dso.rs +++ b/src/ld_so/dso.rs @@ -549,11 +549,11 @@ impl DSO { ); } log::trace!(" = {:p}", ptr); - ptr::write_bytes(ptr as *mut u8, 0, size); + ptr::write_bytes(ptr.cast::(), 0, size); _r_debug .lock() .insert(ptr as usize, path, ptr as usize + l_ld as usize); - slice::from_raw_parts_mut(ptr as *mut u8, size) + slice::from_raw_parts_mut(ptr.cast::(), size) } }; @@ -753,7 +753,7 @@ impl DSO { elf::DT_FINI_ARRAY if val != 0 => fini_array_ptr = Some(ptr.cast::()), elf::DT_FINI_ARRAYSZ => fini_array_len = Some(val as usize / size_of::()), - elf::DT_SYMTAB => symtab_ptr = Some(ptr as *const Sym), + elf::DT_SYMTAB => symtab_ptr = Some(ptr.cast::()), elf::DT_SYMENT => { assert_eq!(val as usize, size_of::()); } @@ -922,13 +922,13 @@ impl DSO { Some(some) => some, None => match reloc.kind { RelocationKind::COPY | RelocationKind::GOT | RelocationKind::PLT => 0, - _ => unsafe { *(ptr as *mut usize) }, + _ => unsafe { *ptr.cast::() }, }, }; // TODO: support different sizes? let set_usize = |value| unsafe { - *(ptr as *mut usize) = value; + *ptr.cast::() = value; }; match reloc.kind { diff --git a/src/ld_so/tcb.rs b/src/ld_so/tcb.rs index 0b37bd8d27..a188a0955e 100644 --- a/src/ld_so/tcb.rs +++ b/src/ld_so/tcb.rs @@ -83,7 +83,7 @@ impl Tcb { let page_size = Sys::getpagesize(); let (_abi_page, tls, tcb_page) = Self::os_new(size.next_multiple_of(page_size))?; - let tcb_ptr = tcb_page.as_mut_ptr() as *mut Self; + let tcb_ptr = tcb_page.as_mut_ptr().cast::(); ptr::write( tcb_ptr, Self { @@ -278,8 +278,8 @@ impl Tcb { ) .map_err(|_| DlError::Oom)?; - ptr::write_bytes(ptr as *mut u8, 0, size); - Ok(slice::from_raw_parts_mut(ptr as *mut u8, size)) + ptr::write_bytes(ptr.cast::(), 0, size); + Ok(slice::from_raw_parts_mut(ptr.cast::(), size)) } /// OS specific code to create a new TLS and TCB - Linux and Redox