re PR libfortran/45165 (unix.c:fallback_access() leaks file descriptors)
authorFrancois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Sat, 26 Feb 2011 15:21:45 +0000 (15:21 +0000)
committerFrançois-Xavier Coudert <fxcoudert@gcc.gnu.org>
Sat, 26 Feb 2011 15:21:45 +0000 (15:21 +0000)
PR libfortran/45165
* unix.c (fallback_access): Fix file descriptor leaks.

From-SVN: r170517

libgfortran/ChangeLog
libgfortran/io/unix.c

index dbafd0c95891bd9d6c00e046489bbf48fc77a688..bc85a6c9e0fda089ea80f72fb2dc2c7d0371c572 100644 (file)
@@ -1,3 +1,8 @@
+2011-02-26  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
+
+       PR libfortran/45165
+       * unix.c (fallback_access): Fix file descriptor leaks.
+
 2011-02-25  Francois-Xavier Coudert  <fxcoudert@gcc.gnu.org>
 
        * acinclude.m4 (LIBGFOR_CHECK_FPSETMASK): Set shell variable
index 004e8606c0a064163d16518d196e4f7d49e9f053..12536ca5cbeafd897c9e92745ce2e08730a82c9d 100644 (file)
@@ -144,11 +144,15 @@ typedef struct stat gfstat_t;
 static int
 fallback_access (const char *path, int mode)
 {
-  if ((mode & R_OK) && open (path, O_RDONLY) < 0)
+  int fd;
+
+  if ((mode & R_OK) && (fd = open (path, O_RDONLY)) < 0)
     return -1;
+  close (fd);
 
-  if ((mode & W_OK) && open (path, O_WRONLY) < 0)
+  if ((mode & W_OK) && (fd = open (path, O_WRONLY)) < 0)
     return -1;
+  close (fd);
 
   if (mode == F_OK)
     {