Change the signature of `ptrace::write` to make it safe
ShuiRuTian opened this issue · comments
Song Gao commented
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).
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>()]