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: [RFC] Add pthread_detach_pwd call.


On Mon, Oct 21, 2013 at 02:13:36PM +0200, OndÅej BÃlka wrote:
> On Mon, Oct 21, 2013 at 12:09:33PM +0200, Florian Weimer wrote:
> > On 10/21/2013 12:25 AM, Rich Felker wrote:
> > 
> > >There is already a clean, portable way to achieve the exact same
> > >thing: the *at functions.
> > 
> > fsetxattrat is missing, though.  Probably more.
> > 
> > I also don't see how we can actually implement something like
> > pthread_detach_pwd without adding and awful lot of wrappers.  It's
> > certainly not just open and fopen, but anything that expects a path
> > name.
> >
> I expected that there is only limited number of primitives that access
> internal structure.

I think you'll find there are pretty many; at least 20-30 'primitive'
(i.e. not built upon simpler ones) functions take filename arguments,
and for these functions, trivial syscall wrappers would be replaced
with moderately-complex logic using the corresponding *at functions
and a thread-local pwd file descriptor.

BTW another issue is what should happen on fork and exec (or
posix_spawn). Library code that expects external programs it runs to
inherit the pwd it sees could be badly messed up if the child
inherited the pwd of the parent process rather than the calling
thread, but I suspect there are cases where the opposite behavior
could also mess things up.

Rich


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