summaryrefslogtreecommitdiffstats
path: root/winsup
diff options
context:
space:
mode:
Diffstat (limited to 'winsup')
-rw-r--r--winsup/cygwin/ChangeLog5
-rw-r--r--winsup/cygwin/fhandler_disk_file.cc3
2 files changed, 7 insertions, 1 deletions
diff --git a/winsup/cygwin/ChangeLog b/winsup/cygwin/ChangeLog
index cef75e0a8..7a10e0792 100644
--- a/winsup/cygwin/ChangeLog
+++ b/winsup/cygwin/ChangeLog
@@ -1,3 +1,8 @@
+2003-09-13 Christopher Faylor <cgf@redhat.com>
+
+ * fhandler_disk_file.cc (path_conv::ndisk_links): Fix potential
+ off-by-one problem when first file in a directory is a directory.
+
2003-09-13 Pierre Humblet <pierre.humblet@ieee.org>
* include/sys/cygwin.h: Rename PID_UNUSED to PID_MAP_RW.
diff --git a/winsup/cygwin/fhandler_disk_file.cc b/winsup/cygwin/fhandler_disk_file.cc
index e8c66bba8..4fe7d1593 100644
--- a/winsup/cygwin/fhandler_disk_file.cc
+++ b/winsup/cygwin/fhandler_disk_file.cc
@@ -66,7 +66,7 @@ path_conv::ndisk_links (DWORD nNumberOfLinks)
if (nNumberOfLinks > 1)
saw_dot--;
else
- while (FindNextFileA (h, &buf))
+ do
{
if (buf.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
count++;
@@ -75,6 +75,7 @@ path_conv::ndisk_links (DWORD nNumberOfLinks)
|| (buf.cFileName[1] == '.' && buf.cFileName[2] == '\0')))
saw_dot--;
}
+ while (FindNextFileA (h, &buf));
FindClose (h);
}