@@ -31,7 +31,6 @@ pub use self::impl_bsd::peer_cred;
31
31
#[ cfg( any( target_os = "linux" , target_os = "android" ) ) ]
32
32
pub mod impl_linux {
33
33
use super :: UCred ;
34
- use crate :: mem:: MaybeUninit ;
35
34
use crate :: os:: unix:: io:: AsRawFd ;
36
35
use crate :: os:: unix:: net:: UnixStream ;
37
36
use crate :: { io, mem} ;
@@ -46,9 +45,9 @@ pub mod impl_linux {
46
45
assert ! ( ucred_size <= u32 :: max_value( ) as usize ) ;
47
46
48
47
let mut ucred_size = ucred_size as u32 ;
48
+ let mut ucred: ucred = ucred { pid : 1 , uid : 1 , gid : 1 } ;
49
49
50
50
unsafe {
51
- let mut ucred: ucred = MaybeUninit :: uninit ( ) . assume_init ( ) ;
52
51
let ret = libc:: getsockopt (
53
52
socket. as_raw_fd ( ) ,
54
53
libc:: SOL_SOCKET ,
@@ -76,14 +75,12 @@ pub mod impl_linux {
76
75
pub mod impl_bsd {
77
76
use super :: UCred ;
78
77
use crate :: io;
79
- use crate :: mem:: MaybeUninit ;
80
78
use crate :: os:: unix:: io:: AsRawFd ;
81
79
use crate :: os:: unix:: net:: UnixStream ;
82
80
83
81
pub fn peer_cred ( socket : & UnixStream ) -> io:: Result < UCred > {
82
+ let mut cred = UCred { uid : 1 , gid : 1 } ;
84
83
unsafe {
85
- // Create `cred` and attempt to populate it.
86
- let mut cred: UCred = MaybeUninit :: uninit ( ) . assume_init ( ) ;
87
84
let ret = libc:: getpeereid ( socket. as_raw_fd ( ) , & mut cred. uid , & mut cred. gid ) ;
88
85
89
86
if ret == 0 { Ok ( cred) } else { Err ( io:: Error :: last_os_error ( ) ) }
0 commit comments