fix -xdev behavior in the presence of two or more nested mount points
authorpgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Thu, 6 Sep 2007 17:45:16 +0000 (17:45 +0000)
committerpgf <pgf@69ca8d6d-28ef-0310-b511-8ec308f3f277>
Thu, 6 Sep 2007 17:45:16 +0000 (17:45 +0000)
on the command line, e.g. "find / /boot -xdev".

git-svn-id: svn://busybox.net/trunk/busybox@19796 69ca8d6d-28ef-0310-b511-8ec308f3f277

findutils/find.c

index 2158468..f3167a0 100644 (file)
@@ -383,9 +383,11 @@ static int fileAction(const char *fileName, struct stat *statbuf, void *userData
 #if ENABLE_FEATURE_FIND_XDEV
        if (S_ISDIR(statbuf->st_mode) && xdev_count) {
                for (i = 0; i < xdev_count; i++) {
-                       if (xdev_dev[i] != statbuf->st_dev)
-                               return SKIP;
+                       if (xdev_dev[i] == statbuf->st_dev)
+                               break;
                }
+               if (i == xdev_count)
+                       return SKIP;
        }
 #endif
        i = exec_actions(actions, fileName, statbuf);