diff --git a/src/sys/socket/mod.rs b/src/sys/socket/mod.rs index 4faa3010f7..fb120dd0a9 100644 --- a/src/sys/socket/mod.rs +++ b/src/sys/socket/mod.rs @@ -2410,7 +2410,7 @@ pub fn recvfrom( ) -> Result<(usize, Option)> { unsafe { let mut addr = mem::MaybeUninit::::uninit(); - let mut len = mem::size_of_val(&addr) as socklen_t; + let mut len = T::size(); let ret = Errno::result(libc::recvfrom( sockfd, @@ -2421,7 +2421,7 @@ pub fn recvfrom( &mut len as *mut socklen_t, ))? as usize; - Ok((ret, T::from_raw(addr.assume_init().as_ptr(), Some(len)))) + Ok((ret, T::from_raw(addr.as_ptr().cast(), Some(len)))) } } @@ -2524,7 +2524,7 @@ pub fn getpeername(fd: RawFd) -> Result { Errno::result(ret)?; - T::from_raw(addr.assume_init().as_ptr(), Some(len)).ok_or(Errno::EINVAL) + T::from_raw(addr.as_ptr().cast(), Some(len)).ok_or(Errno::EINVAL) } } @@ -2540,7 +2540,7 @@ pub fn getsockname(fd: RawFd) -> Result { Errno::result(ret)?; - T::from_raw(addr.assume_init().as_ptr(), Some(len)).ok_or(Errno::EINVAL) + T::from_raw(addr.as_ptr().cast(), Some(len)).ok_or(Errno::EINVAL) } }