Date: Wed, 01 Dec 2010 13:23:51 +0800 From: Kevin Lo <kevlo@FreeBSD.org> To: Bakul Shah <bakul@bitblocks.com> Cc: freebsd-hackers@FreeBSD.org, Matthew Jacob <mj@feral.com> Subject: Re: find(1): Is this a bug or not? Message-ID: <1291181031.2098.5.camel@monet> In-Reply-To: <20101129221648.159C45B18@mail.bitblocks.com> References: <86r5e3zye4.fsf@pluton.xbsd.name> <4CF40F8F.30303@feral.com> <20101129221648.159C45B18@mail.bitblocks.com>
next in thread | previous in thread | raw e-mail | index | archive | help
Bakul Shah wrote: > On Mon, 29 Nov 2010 12:39:43 PST Matthew Jacob <mj@feral.com> wrote: > > can you report out the actual command line you're using and what release > > it's from? > > > > On 11/29/2010 12:08 PM, Denise H. G. wrote: > > > Hi, > > > > > > I found that, while searching for empty directories, find(1) will not > > > continue if it encounters a dir it can't enter (e.g. no privilege). I > > > don't know if it's so designed... I've checked NetBSD and OpenBSD's > > > implementations (almost identical to that of FreeBSD's). And they behave > > > the same way as FreeBSD's find(1) does under the circumstance. > > > > > > I'm wondering if this is a bug or not. > > This looks like a long standing bug: > > % mkdir -p a/{b,c}/d/e/f > % find a -empty > % chmod 000 a/b/d/ef > % find a -empty > > The fix: > > % cd /usr/src/usr.bin/find > % svn diff > Index: function.c > =================================================================== > --- function.c (revision 212707) > +++ function.c (working copy) > @@ -560,7 +560,7 @@ > empty = 1; > dir = opendir(entry->fts_accpath); > if (dir == NULL) > - err(1, "%s", entry->fts_accpath); > + return 0; > for (dp = readdir(dir); dp; dp = readdir(dir)) > if (dp->d_name[0] != '.' || > (dp->d_name[1] != '\0' && > Your patch looks good to me. I'll commit it in a few days if there's no objection. Kevin
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?1291181031.2098.5.camel>