Browse Source

restore property that fstat(AT_FDCWD) fails with EBADF

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.
Rich Felker 5 years ago
parent
commit
eeff60608c
1 changed files with 1 additions and 0 deletions
  1. 1 0
      src/stat/fstat.c

+ 1 - 0
src/stat/fstat.c

@@ -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);
 }