Browse Source

fix errno value when fdopendir is given an invalid file descriptor

this resolves an issue reported by Vasiliy Kulikov
Rich Felker 13 năm trước cách đây
mục cha
commit
fa845669ce
1 tập tin đã thay đổi với 4 bổ sung1 xóa
  1. 4 1
      src/dirent/fdopendir.c

+ 4 - 1
src/dirent/fdopendir.c

@@ -12,7 +12,10 @@ DIR *fdopendir(int fd)
 	DIR *dir;
 	struct stat st;
 
-	if (fstat(fd, &st) < 0 || !S_ISDIR(st.st_mode)) {
+	if (fstat(fd, &st) < 0) {
+		return 0;
+	}
+	if (!S_ISDIR(st.st_mode)) {
 		errno = ENOTDIR;
 		return 0;
 	}