[37492] in bugtraq
Re: Changes to the filesystem while find is running - comments?
daemon@ATHENA.MIT.EDU (devnull@Rodents.Montreal.QC.CA)
Wed Nov 24 20:50:14 2004
Message-Id: <200411240531.AAA00851@Sparkle.Rodents.Montreal.QC.CA>
Mime-Version: 1.0
Content-Type: text/plain; charset="iso-8859-1"
Content-Transfer-Encoding: 8bit
Date: Wed, 24 Nov 2004 00:24:57 -0500 (EST)
To: bugtraq@securityfocus.com, bug-findutils@gnu.org
From: devnull@Rodents.Montreal.QC.CA
In-Reply-To: <20041122235130.GA24410@excession.spiral-arm.org>
(Because I'm so sick of the broken autoresponders bugtraq is full of,
I've set the From: on this mail to a black-hole address. Please use
the address in the signature if you actually want to reach me.)
>> Before a chdir to "foo", take stock:
>> - record stat("."); DOTFD = open("."); (get a fd to ".")
This is not possible if . is a search-only directory. (While find will
not work very well in such a directory, care should be taken that it
not fall over just because someone happened to chmod the read bits away
from a directory just when find happens to be in it.)
More generally, I've wanted to do this - use file descriptors as
handles onto directories - and often wished for an O_NOACCESS mode to
open() in consequence.
> Of course, open(2) will follow a symlink, if the directory we
> originally stat()ed is replaced by a symlink just before we issue the
> open() call. We of course can guard against that by issuing an
> lstat() on the fd once we have opened it.
ITYPM fstat(), not lstat(), in the last line.
/~\ The ASCII der Mouse
\ / Ribbon Campaign
X Against HTML mouse@rodents.montreal.qc.ca
/ \ Email! 7D C8 61 52 5D E7 2D 39 4E F1 31 3E E8 B3 27 4B