]> sourceware.org Git - newlib-cygwin.git/commitdiff
* fhandler_disk_file.cc (fhandler_disk_file::opendir): Detect attempt to open a
authorChristopher Faylor <me@cgf.cx>
Wed, 5 Nov 2003 16:53:55 +0000 (16:53 +0000)
committerChristopher Faylor <me@cgf.cx>
Wed, 5 Nov 2003 16:53:55 +0000 (16:53 +0000)
directory which lacks read privileges.

winsup/cygwin/ChangeLog
winsup/cygwin/fhandler_disk_file.cc

index 4bc145fab35ea94f95eb922accbfd009292dacee..90d989cf320e7a63928167684c3b74c02a5076d8 100644 (file)
@@ -1,3 +1,8 @@
+2003-11-05  Christopher Faylor  <cgf@redhat.com>
+
+       * fhandler_disk_file.cc (fhandler_disk_file::opendir): Detect attempt
+       to open a directory which lacks read privileges.
+
 2003-11-04  Corinna Vinschen  <corinna@vinschen.de>
 
        * external.cc (cygwin_internal): Add CW_GET_POSIX_SECURITY_ATTRIBUTE
index 1c11636e93d382b2f7b1994eaa6b065d4cc0d4be..20ed661246ec8c1e3fba05c6bcdd49606642dc6d 100644 (file)
@@ -617,15 +617,20 @@ fhandler_disk_file::opendir ()
     set_errno (ENOMEM);
   else if ((dir->__d_dirname = (char *) malloc (len + 3)) == NULL)
     {
-      free (dir);
       set_errno (ENOMEM);
+      free (dir);
     }
   else if ((dir->__d_dirent =
            (struct dirent *) malloc (sizeof (struct dirent))) == NULL)
     {
+      set_errno (ENOMEM);
+      free (dir);
       free (dir->__d_dirname);
+    }
+  else if (access_worker (pc, R_OK) != 0)
+    {
       free (dir);
-      set_errno (ENOMEM);
+      free (dir->__d_dirname);
     }
   else
     {
This page took 0.039992 seconds and 5 git commands to generate.