]> git.lizzy.rs Git - rust.git/commitdiff
Use fstatat64 where available
authorJosh Stone <jistone@redhat.com>
Mon, 25 Jun 2018 18:42:27 +0000 (11:42 -0700)
committerJosh Stone <jistone@redhat.com>
Mon, 25 Jun 2018 18:42:27 +0000 (11:42 -0700)
src/libstd/sys/unix/fs.rs

index 774340388e1db9b7fe38a3646aec42e5c8d13813..6949e22c58f0b86b36d2106c5c6c487d55543999 100644 (file)
 
 #[cfg(any(target_os = "linux", target_os = "emscripten", target_os = "l4re"))]
 use libc::{stat64, fstat64, lstat64, off64_t, ftruncate64, lseek64, dirent64, readdir64_r, open64};
+#[cfg(any(target_os = "linux", target_os = "emscripten"))]
+use libc::fstatat64;
 #[cfg(any(target_os = "linux", target_os = "emscripten", target_os = "android"))]
-use libc::{fstatat, dirfd};
+use libc::dirfd;
 #[cfg(target_os = "android")]
-use libc::{stat as stat64, fstat as fstat64, lstat as lstat64, lseek64,
+use libc::{stat as stat64, fstat as fstat64, fstatat as fstatat64, lstat as lstat64, lseek64,
            dirent as dirent64, open as open64};
 #[cfg(not(any(target_os = "linux",
               target_os = "emscripten",
@@ -299,10 +301,7 @@ pub fn metadata(&self) -> io::Result<FileAttr> {
         let fd = cvt(unsafe {dirfd(self.dir.0.dirp.0)})?;
         let mut stat: stat64 = unsafe { mem::zeroed() };
         cvt(unsafe {
-            fstatat(fd,
-                    self.entry.d_name.as_ptr(),
-                    &mut stat as *mut _ as *mut _,
-                    libc::AT_SYMLINK_NOFOLLOW)
+            fstatat64(fd, self.entry.d_name.as_ptr(), &mut stat, libc::AT_SYMLINK_NOFOLLOW)
         })?;
         Ok(FileAttr { stat: stat })
     }