From d417aec9089e59f0f667290ebe777ef554ac5103 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Wed, 5 Nov 2003 16:53:55 +0000 Subject: * fhandler_disk_file.cc (fhandler_disk_file::opendir): Detect attempt to open a directory which lacks read privileges. --- winsup/cygwin/fhandler_disk_file.cc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) (limited to 'winsup/cygwin/fhandler_disk_file.cc') diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc index 1c11636e9..20ed66124 100644 --- a/winsup/cygwin/fhandler_disk_file.cc +++ b/winsup/cygwin/fhandler_disk_file.cc @@ -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 { -- cgit v1.2.3