diff options
-rw-r--r-- | winsup/cygwin/ChangeLog | 5 | ||||
-rw-r--r-- | winsup/cygwin/fhandler_disk_file.cc | 3 |
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); } |