summary refs log tree commit diff
path: root/io/fstatat64.c
diff options
context:
space:
mode:
Diffstat (limited to 'io/fstatat64.c')
-rw-r--r--io/fstatat64.c18
1 files changed, 16 insertions, 2 deletions
diff --git a/io/fstatat64.c b/io/fstatat64.c
index 0e0312fd19..3b5a7528b7 100644
--- a/io/fstatat64.c
+++ b/io/fstatat64.c
@@ -16,12 +16,26 @@
    <https://www.gnu.org/licenses/>.  */
 
 #include <sys/stat.h>
+#include <errno.h>
 
-#undef __fstatat64
 int
 __fstatat64 (int fd, const char *file, struct stat64 *buf, int flag)
 {
-  return __fxstatat64 (_STAT_VER, fd, file, buf, flag);
+  if (fd < 0 && fd != AT_FDCWD)
+    {
+      __set_errno (EBADF);
+      return -1;
+    }
+  if (buf == NULL || (flag & ~AT_SYMLINK_NOFOLLOW) != 0)
+    {
+      __set_errno (EINVAL);
+      return -1;
+    }
+
+  __set_errno (ENOSYS);
+  return -1;
 }
 hidden_def (__fstatat64)
 weak_alias (__fstatat64, fstatat64)
+
+stub_warning (fstatat64)