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 + + * 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 * 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); }