@@ -483,30 +483,21 @@ pub fn home_dir() -> Option<PathBuf> {
483
483
target_os = "nacl" ,
484
484
target_os = "emscripten" ) ) ) ]
485
485
unsafe fn fallback ( ) -> Option < OsString > {
486
- unsafe fn getpwduid_r ( me : libc:: uid_t , passwd : & mut libc:: passwd ,
487
- buf : & mut Vec < c_char > ) -> Option < ( ) > {
488
- let mut result = ptr:: null_mut ( ) ;
489
- match libc:: getpwuid_r ( me, passwd, buf. as_mut_ptr ( ) ,
490
- buf. capacity ( ) ,
491
- & mut result) {
492
- 0 if !result. is_null ( ) => Some ( ( ) ) ,
493
- _ => None
494
- }
495
- }
496
-
497
486
let amt = match libc:: sysconf ( libc:: _SC_GETPW_R_SIZE_MAX) {
498
487
n if n < 0 => 512 as usize ,
499
488
n => n as usize ,
500
489
} ;
501
490
let mut buf = Vec :: with_capacity ( amt) ;
502
491
let mut passwd: libc:: passwd = mem:: zeroed ( ) ;
503
-
504
- if getpwduid_r ( libc:: getuid ( ) , & mut passwd, & mut buf) . is_some ( ) {
505
- let ptr = passwd. pw_dir as * const _ ;
506
- let bytes = CStr :: from_ptr ( ptr) . to_bytes ( ) . to_vec ( ) ;
507
- Some ( OsStringExt :: from_vec ( bytes) )
508
- } else {
509
- None
492
+ let mut result = ptr:: null_mut ( ) ;
493
+ match libc:: getpwuid_r ( libc:: getuid ( ) , & mut passwd, buf. as_mut_ptr ( ) ,
494
+ buf. capacity ( ) , & mut result) {
495
+ 0 if !result. is_null ( ) => {
496
+ let ptr = passwd. pw_dir as * const _ ;
497
+ let bytes = CStr :: from_ptr ( ptr) . to_bytes ( ) . to_vec ( ) ;
498
+ Some ( OsStringExt :: from_vec ( bytes) )
499
+ } ,
500
+ _ => None ,
510
501
}
511
502
}
512
503
}
0 commit comments