diff options
Diffstat (limited to 'src/sys/ptrace/linux.rs')
-rw-r--r-- | src/sys/ptrace/linux.rs | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/sys/ptrace/linux.rs b/src/sys/ptrace/linux.rs index df15e665..b2b984c3 100644 --- a/src/sys/ptrace/linux.rs +++ b/src/sys/ptrace/linux.rs @@ -221,16 +221,15 @@ pub fn setregs(pid: Pid, regs: user_regs_struct) -> Result<()> { /// and therefore use the data field to return values. This function handles these /// requests. fn ptrace_get_data<T>(request: Request, pid: Pid) -> Result<T> { - // Creates an uninitialized pointer to store result in - let data: T = unsafe { mem::uninitialized() }; + let mut data = mem::MaybeUninit::uninit(); let res = unsafe { libc::ptrace(request as RequestType, libc::pid_t::from(pid), ptr::null_mut::<T>(), - &data as *const _ as *const c_void) + data.as_mut_ptr() as *const _ as *const c_void) }; Errno::result(res)?; - Ok(data) + Ok(unsafe{ data.assume_init() }) } unsafe fn ptrace_other(request: Request, pid: Pid, addr: AddressType, data: *mut c_void) -> Result<c_long> { |