this avoids the need for implementation-internal callers to depend on the nonstandard AT_EMPTY_PATH extension to use __fstatat and isolates knowledge of that extension to the implementation of __fstat.
@@ -3,6 +3,7 @@
#include "../../../include/sys/stat.h"
+hidden int __fstat(int, struct stat *);
hidden int __fstatat(int, const char *restrict, struct stat *restrict, int);
#endif
@@ -4,12 +4,14 @@
#include <fcntl.h>
#include "syscall.h"
-int fstat(int fd, struct stat *st)
+int __fstat(int fd, struct stat *st)
{
if (fd<0) return __syscall_ret(-EBADF);
- return fstatat(fd, "", st, AT_EMPTY_PATH);
+ return __fstatat(fd, "", st, AT_EMPTY_PATH);
}
+weak_alias(__fstat, fstat);
+
#if !_REDIR_TIME64
weak_alias(fstat, fstat64);