summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/ftw.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/ftw.c b/lib/ftw.c
index 3fe76d1cd..0843c11cf 100644
--- a/lib/ftw.c
+++ b/lib/ftw.c
@@ -398,6 +398,12 @@ process_entry (struct ftw_data *data, struct dir_data *dir, const char *name,
if (__chdir ("..") < 0)
result = -1;
}
+
+ if (result < 0)
+ {
+ result = (*data->func) (data->dirbuf, NULL, FTW_DCHP,
+ &data->ftw);
+ }
}
}
}
@@ -464,6 +470,10 @@ ftw_dir (struct ftw_data *data, struct STAT *st)
data->actdir = data->maxdir - 1;
data->dirstreams[data->actdir] = NULL;
+ /* We cannot change to the directory.
+ Signal this with a special flag. */
+ result = (*data->func) (data->dirbuf, st, FTW_DCH, &data->ftw);
+
return result;
}
}