Closed ShuiRuTian closed 7 months ago
For now, the whole impl of write is
pub unsafe fn write( pid: Pid, addr: AddressType, data: *mut c_void, ) -> Result<()> { unsafe { ptrace_other(Request::PTRACE_POKEDATA, pid, addr, data).map(drop) } }
In ptrace(2), it's mentioned data is "a word", which should be the same as the return type of read(c_long, in current code).
c_long
So, why don't we change the type of data to c_long, and make it safe?
c_long,
Or maybe the type could be a byte array like [u8; sizeof::<c_long>()]
[u8; sizeof::<c_long>()]
It was made unsafe indeed for this argument, see #1245, so I think this would be a reasonable change.
unsafe
For now, the whole impl of write is
In ptrace(2), it's mentioned data is "a word", which should be the same as the return type of read(
c_long
, in current code).So, why don't we change the type of data to
c_long,
and make it safe?Or maybe the type could be a byte array like
[u8; sizeof::<c_long>()]