Explorar el Código

fix errno value when fdopendir is given an invalid file descriptor

this resolves an issue reported by Vasiliy Kulikov
Rich Felker hace 13 años
padre
commit
fa845669ce
Se han modificado 1 ficheros con 4 adiciones y 1 borrados
  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;
 	}