Skip to content
This repository was archived by the owner on Jan 22, 2025. It is now read-only.

Commit ab9750b

Browse files
committed
Uses std::mem::transmute and std::ptr::write in unsafe code in append_vec.rs
1 parent 20fc3a5 commit ab9750b

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

runtime/src/append_vec.rs

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -706,7 +706,7 @@ pub mod tests {
706706
fn set_data_len_unsafe(&self, new_data_len: u64) {
707707
// UNSAFE: cast away & (= const ref) to &mut to force to mutate append-only (=read-only) AppendVec
708708
unsafe {
709-
*(&self.meta.data_len as *const u64 as *mut u64) = new_data_len;
709+
std::ptr::write(std::mem::transmute<*const u64, *mut u64>(&self.meta.data_len), new_data_len);
710710
}
711711
}
712712

@@ -721,7 +721,7 @@ pub mod tests {
721721
fn set_executable_as_byte(&self, new_executable_byte: u8) {
722722
// UNSAFE: Force to interpret mmap-backed &bool as &u8 to write some crafted value;
723723
unsafe {
724-
*(&self.account_meta.executable as *const bool as *mut u8) = new_executable_byte;
724+
std::ptr::write(std::mem::transmute<*const bool, *mut u8>(&self.account_meta.executable), new_executable_byte);
725725
}
726726
}
727727
}

0 commit comments

Comments
 (0)