From: Jim Meyering Date: Sat, 14 Oct 2006 06:32:48 +0000 (+0000) Subject: Fix a bug in yesterday's change. X-Git-Tag: cvs-readonly~1719 X-Git-Url: http://erislabs.org.uk/gitweb/?a=commitdiff_plain;h=83f57af124f0a11a0f491b90f4ac4910893f0dd0;p=gnulib.git Fix a bug in yesterday's change. * lib/fts.c (fts_open): When using FTS_XDEV|FTS_NOSTAT, p->fts_statp->st_dev would be used uninitialized. Ensures that we always call fts_stat on the very first entry. Miklos Szeredi reported that find -xdev stopped working. --- diff --git a/ChangeLog b/ChangeLog index f0201b3ff..561bfdb8b 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,11 @@ +2006-10-13 Jim Meyering + + Fix a bug in yesterday's change. + * lib/fts.c (fts_open): When using FTS_XDEV|FTS_NOSTAT, + p->fts_statp->st_dev would be used uninitialized. + Ensures that we always call fts_stat on the very first entry. + Miklos Szeredi reported that find -xdev stopped working. + 2006-10-12 Bruno Haible * gnulib-tool (func_get_automake_snippet): Append an automatically diff --git a/lib/fts.c b/lib/fts.c index 05cd67c49..fc6bbd37b 100644 --- a/lib/fts.c +++ b/lib/fts.c @@ -396,7 +396,10 @@ fts_open (char * const *argv, p->fts_level = FTS_ROOTLEVEL; p->fts_parent = parent; p->fts_accpath = p->fts_name; - if (defer_stat) { + /* Even when defer_stat is true, be sure to stat the first + command line argument, since fts_read (at least with + FTS_XDEV) requires that. */ + if (defer_stat && root != NULL) { p->fts_info = FTS_NSOK; fts_set_stat_required(p, true); } else {