Disabled the optimization to stop stat'ing directory entries in
authorDavid Levine <levinedl@acm.org>
Wed, 14 Mar 2012 03:28:03 +0000 (22:28 -0500)
committerDavid Levine <levinedl@acm.org>
Wed, 14 Mar 2012 03:28:03 +0000 (22:28 -0500)
BuildFolderListRecurse() of flist.c under conditions where st_nlink is
set to 1.  That happens on Cygwin, for example:
  http://cygwin.com/ml/cygwin-apps/2008-08/msg00264.html

uip/flist.c

index d46f7ba..8d8b92e 100644 (file)
@@ -413,6 +413,12 @@ BuildFolderListRecurse(char *dirName, struct stat *s, int searchdepth)
      * stat them.  But that shouldn't generally be a problem.
      */
     nlinks = s->st_nlink;
+    if (nlinks == 1) {
+      /* Disable the optimization under conditions where st_nlink
+         is set to 1.  That happens on Cygwin, for example:
+         http://cygwin.com/ml/cygwin-apps/2008-08/msg00264.html */
+      nlinks = INT_MAX;
+    }
 
     if (!(dir = opendir(dirName)))
        adios(dirName, "can't open directory");