From e306c058c7fdf8802fa7ffcba5968546d89ddf12 Mon Sep 17 00:00:00 2001 From: Christopher Faylor Date: Sun, 14 Sep 2003 00:07:50 +0000 Subject: [PATCH] * fhandler_disk_file.cc (path_conv::ndisk_links): Fix potential off-by-one problem when first file in a directory is a directory. --- winsup/cygwin/ChangeLog | 5 +++++ winsup/cygwin/fhandler_disk_file.cc | 3 ++- 2 files changed, 7 insertions(+), 1 deletion(-) 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); }