This is the mail archive of the libc-alpha@sourceware.org mailing list for the glibc project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Thread-, Signal- and Cancellation-safety documentation


On May 31, 2013, Rich Felker <dalias@aerifal.cx> wrote:

> On Fri, May 31, 2013 at 05:51:15PM -0300, Alexandre Oliva wrote:

>> Huh?  How could anyone ensure it has exclusive access to a filename
>> that's about to be renamed, or overwritten by a rename?

> If the directory has a 255-character random name and is located in a
> non-readable directory owned by root on a system where no process has
> retained root, then you can be quite certain that only the process(es)
> which have the name of the directory or a live file descriptor for it
> can perform a rename in it.

Yeah, I know, but you forgot the âno suid root executableâ and âno
root-me exploitsâ constraints ;-)

> Extreme examples aside, if an application is working in a working
> directory that (by contract/convention) belongs to it, and which has
> the right permissions so that other users cannot mess with it, and the
> application has documented that the user running the application
> cannot mess with the contents of this directory while the application
> is running without invoking UB, then you have a reasonable real-world
> situation where exclusivity is "guaranteed".

I'd argue the same goes for chdir.  Just like the âdon't mess with my
exclusive dirâ technique you wrote about above, nothing prevents other
threads in the same process from messing with it.  It's a matter of
setting a convention and abiding by it.

Of course there's room for an unaudited library call somewhere to
introduce an unwanted use of chdir, but by the same argument, there's
room for an unaudited library call to mess with the directory that was
supposed to be exclusively used for other purposes.  Neither should be
used in the multi-threaded program that relies on either exclusivity.

-- 
Alexandre Oliva, freedom fighter    http://FSFLA.org/~lxoliva/
You must be the change you wish to see in the world. -- Gandhi
Be Free! -- http://FSFLA.org/   FSF Latin America board member
Free Software Evangelist      Red Hat Brazil Compiler Engineer


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]