AT_FDCWD is not a valid file descriptor, so POSIX requires fstat to fail with EBADF. if passed to fstatat, the call would spuriously succeed and return results for the working directory.
@@ -6,6 +6,7 @@
int fstat(int fd, struct stat *st)
{
+ if (fd<0) return __syscall_ret(-EBADF);
return fstatat(fd, "", st, AT_EMPTY_PATH);
}